面向对象
面向过程
- 强调的是功能行为
面向对象
- 面向对象是相对于面向过程而言
- 面向对象和面向过程都是一种思想
- 将功能封装进对象,强调了具备了功能的对象
面向对象的特点
- 是一种符合人们思考习惯的思想
- 可以将复杂的事情简单化
- 将程序员从执行者转换成了指挥者
- 完成需求时:
- 先要去找具体所需的功能的对象来用
- 如果该对象不存在,那么创建一个具有所需功能的对象
- 这样简化开发并提高复用
万物皆对象
对象的特征---属性
对象的行为---方法
测试类:
- 使用定义的Student类中的变量和方法
- 先找到这个类,使用这个类:通过类名创建对象;
创建对象格式:
- 类名 变量名 = new 类名();
- 类名 对象名 = new 类名();
使用对象:
- 用对象调用成员变量,成员方法
- 调用/使用成员变量--变量名.成员变量名称;
- 调用/使用成员方法--变量名.成员方法名;
跨类使用成员变量和成员方法需要创建对象,用对象调用。
一个对象的内存图:
- Car car在栈中(car是局部变量,随着main方法执行而进栈)
- new关键字开辟的所有空间都在堆中
Car类里面的color,num成员变量随着对象创建在堆中
- 成员变量有默认值,局部变量没有默认值
- car称为对象,实际变量存的是地址值
- 方法执行时进栈,执行完毕后会弹栈从内存中消失,该方法中的局部变量会消失
- 类被使用时,该类的.class文件会进内存中的方法区
- 创建对象是根据.class文件的内容在堆中开辟空间
局部变量名称可以和成员变量名称一样,在方法使用就近原则。
局部变量和成员变量名称一样,默认就近原则,使用this.访问成员变量。
变量在它声明的括号内有效
成员方法用对象调用
super注意点:
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或构造方法中
- super和this不能同时调用构造方法
Vs this:
代表的对象不同 this:本身调用这个对象 super:代表父类对象的应用
前提: this:没有继承也可以使用 super:只能在继承条件下才可以使用
构造方法 this();本类的构造 super:父类的构造
重写:需要有继承关系,子类重写了父类的方法!
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大但是不能缩小:public>protected>default>private
- 抛出的异常:范围,可以被缩小,但是不能扩大。ClassNotFoundException-->Exception(大)
重写,子类和父类必须要一致:方法体不同!
为什么要重写:
- 父类的功能:子类不一定需要,或者不一定满足!alt+insert: override;
多态注意事项:
- 多态是方法的多态,属性没有多态
- 父类和子类有联系,
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new son();
- static 方法,属于类,他不属于实例;
- final 常量;
- private 方法;

浙公网安备 33010602011771号