第四章 面向对象(上)- 1 类与对象
1.面向对象学习的三条主线:
Java类及类的成员:属性、方法、构造器、代码块、内部类
面向对象的三大特征:封装性、继承性、多态性(抽象性)
其它关键字:this、super、static、final、abstract、interface、package、import等
“大处着眼,小处着手”
2.面向对象与面向过程(理解)
面向过程:强调的是功能行为,以函数为最小的单位,考虑怎么做。
面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
举例:人把大象装冰箱
3.完成一个项目(或功能)的思路:
面向对象分析方法分析问题的思路和步骤:
1)根据问题需要,选择问题所针对的现实世界中的实体。
2)从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。
3)把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序的语言, 把类构造成计算机能够识别和处理的数据结构。
4)将类实例化成计算机世界中的对象,对象是计算机世界中解决问题的最终工具。
4.面向对象中两个重要的的概念:
类:对一类事物的描述,是抽象的、概述上的定义。
对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)
面向对象程序设计的重点是类的设计
类的设计,其实就是类的成员的设计
二者的关系:
对象,是由类new出来的,派生出来的。
5.面向对象思想落地实现的规则一:
创建类,设计类的成员
创建类的对象
通过“对象.属性” 或 “对象.方法”调用对象的结构
补充:几个概念的使用说明:
属性 = 成员变量 = field = 域、字段
方法 = 成员方法 = 函数 = method
创建类的对象 = 类的实例化 = 实例化类
6.对象的创建与对象的内存解析
【典型代码】
Person p1 = new Person();
Person p2 = new Person();
Person p3 = p1; //没有新创建一个对象,共用了一个堆空间的对象实体
说明:
如果创建一个类的多个对象,则每个对象都是独立的拥有一套类的属性。(非static的)
意味着:如果我们修改一个对象的属性a,则不会影响另外一个对象的属性a的值。
内存解析:
7.匿名对象:我们创建的对象,没有显示的赋给一个变量名。即为匿名对象。
特点:
匿名对象只能调用一次。
举例:匿名对象
new Phone().sendEmail(); //没有将new Phone 赋给一个变量名,所以叫匿名
new Phone().playGame(); //每新new一个就是新的对象。
//举例: 匿名对象
new Phone().price = 1990;
new Phone().showPrice();
应用场景:
//匿名对象的使用
PhoneMall mall = new PhoneMall();
mall.show(new Phone());
}
}
其中:
class PhoneMall{
public void show(Phone p){
phone.sendEmail();
phone.playGame();
}
}
理解万事万物皆对象:
1.在Java语言范畴中,我们都将功能、结构等封装类中,通过类的实例化,来调用具体的功能结构
Scanner,String等
文件:File
网络资源:URL
2.涉及到Java语言与前端HTML、后端的数据库交互时,前后端的结构在Java层面交互时,都体现类、对象。