1.过程化思想和OO的区别:
- 过程化:围绕实现功能的每个细节,从播种-树木-做成桌子。
- 对象化思想:根据职责,实现分工。既每个类都有自己的功能。
2.万物皆对象(object)
- 对象是存在的具体实体,具有明确定义的特征和行为。
- 万物皆为对象,对象因我关注而产生。即使是同一个对象,也可能因为不同的关注点不同,产生不同的需求,比如学生成绩管理系统,健康管理系统,
3.什么是面向对象
- 一种认识事物的方式,注重对事物整体的认知,最符合人类自然的思维习惯。
- 接触新事物——》有什么特征——》干什么用的——》怎么使用呢?
- 对象的产生,一定是数据封装的结果。
4.什么是类?
例如,被蛇咬了,摸到了绳子,条件反射地离开,是把又细又长的东西与咬人的行为联系起来
- 类是具有相同属性和行为的一组对象的集合
- 在软件系统中,我们用类来模拟现实生活中的实体。
5.类和对象的关系
- 类是对象的抽象,对象是类的实例
int x =8;表示x是个变量,存放的的int类型,数据是8
Man m = new Man();//m是引用类型,无法放置MAN中的三个数据(name,age,job),所以,m是一个地址,也是个引用对象。
m.name 也就表示,通过m这个地址去找到name的数据
6.属性是对象的特征,每个对象都有自己独立的属性值。一个对象的属性发生变化,不会影响另一个对象的属性。属性是封装在对象之中的变量,是对象的成员。属性也叫成员变量。
7.变量只是一个地址指向
Man m1 = new Man();
m1.name = "光头强";
m1.age = 42;
m1.job ="伐木工";
Man ClassMaster = m1;
ClassMaster.job ="诗人";
System.out.println(m1.name+"\t"+m1.age+"\t"+m1.job);
System.out.println(ClassMaster.name+"\t"+ClassMaster.age+"\t"+ClassMaster.job);
/**ClassMaster 与m1都是地址,指向了同一个对象,所以,当对ClassMaster.job进行改变的时候,
两个的指向都没有发生变化,将直接提取对象内容,而不管是否改变*/
8.对象的改变:
- 相同的地址,指向的对象发生改变,所有相同地址的变量都会发生改变,比如,m1和m都指向了一个对象,则会发生改变。不同地址的对象互相不影响。
- 静态变量,则会受到所有对象的影响,不管是不是相同引用地址。
- 静态变量是所有对象共享的变量,所以可以通过“类名.”的方式来访问,静态变量也叫类变量。Man.earth=m1.earth=m.earth
- 比如“system.out”就是一个类名+静态变量。
9.静态变量和成员变量之间的区别:
- 成员变量是对象的组成部分,每个对象有不同的成员变量,比如age,name,safary,当一个成员变量改变后,不会影响其他变量;
- 静态变量是独立在对象之外的,很多对象共享一个静态变量。当静态变量发生改变后,会影响所有对象。
- 静态变量加载的时机在对象之前。成员变量随对象产生而产生。
- 成员变量的访问,只能 对象. 的方式来访问,静态可以通过 对象。 和 类名。的方式来访问。