面向对象概述+类与对象
面向对象:
首先理解,万物皆对象,我们看的见摸得着的东西都是对象。那么对象都会有特征(属性、即数据)和能干什么(方法)。对象自身是内聚的,它只需要关注自身的数据,完成好自己的操作的,对外界呈现出自己的状态和行为即可;
高内聚,低耦合
写代码时,力求高内聚,低耦合(在类的封装中会具体介绍)
高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅暴露少量的方法给外部使用
面向过程:
面向过程编程,解决(实现)一个问题(功能),需要步骤化的进行函数调用。突出的是解决问题的过程和细节。
到底该如何理解面向对象呢?
假如交给你一项任务——“把一头大象装进冰箱里”。你该怎么去做呢?
面向过程的解决思路是:
1. 找一个冰箱门
2. 打开冰箱门
3. 把大象引过来、骗进去
4. 关上冰箱门
面向对象的解决思路是:
去找个有能力做这件事的人,把这件事托付给他去做,自己只看结果就行。具体怎么实现的,不必去管它。
对象:
找的这个人,在java中就是一个对象,我只需要关注这个人有没有“把大象装进冰箱”这个技术和这个能力,而不需要关注这个人怎么把大象装进去的,要完成这个“大象装进冰箱”事情,这个人是需要回答我:“能”,还是“不能”。
类:“人以类聚,物以群分”
可以理解为对一群实体的共同特点的抽象概括。比如学生就是一个实际群体的概括,他们有共同的特征,都有名字、都有性别、年龄、学号。都要学习、都要吃饭、都要睡觉。
类和对象有什么关系?
对象是对类的具体实现。就像学生是一个类的概念,是学生都有名字、都有性别、年龄、学号,都要学习、都要吃饭、都要睡觉。那么具体的一个学生,比如小明同学,他的名字叫小明,性别男、年龄10岁、学号666,每天拼命的学习、用筷子吃饭、一般侧卧着睡觉。小明同学是广大学生群体中具体的一个。那么我们就称小明是学生类的一个对象。
先有类还是先有对象?
我们常说“他们这类人怎么怎么着”,再结合“类是对一群实体的共同特点的抽象概括”。所以,现实生活中,先有对象,后有类。而代码中,对象是对类的具体实现,我们要先创建出类,才能具体的通过这个类产生对象。换句话说,类是我们设计的一个模板,所有的对象都是根据模板来生成的。因此,代码中,先有类后有对象。
类长什么样?
1. 用class修饰
2. 里面有 属性、方法。
对象长什么样?
现实中,万物皆对象。看得见的摸得着的都是对象。代码里,有具体属性值,并能够去执行一定数量方法的,都称为对象。前提是得有一个类,对象是通过类,用new关键字new出来的。
我们该如何去定义一个类?
class+类名+代码块,代码块里有这个类相对应的属性、方法。
我们该如何去声明一个对象?
没有对象怎么办?new一个对象!
Student student_01 = new Student();
其中,student_01就是Student类的一个对象。通过以上格式还可以new出来无数个不同的对象。如:
Student student_02 = new Student();
Student student_03 = new Student();
Student student_04 = new Student();
......