第四章 面向对象(上)- 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层面交互时,都体现类、对象。