Java学习day10面向对象(三)

构造方法

构造方法的作用

创建对象的同时,完成新建对象的初始化工作(对象)

构造方法的特点

①构造方法是与类同名的方法
②没有void反回值
③一般不能显式地直接调用,而是用new来调用

构造方法和普通方法的对比

Java学习day10面向对象(三)

默认的构造方法

当类中没有构造方法的时候,系统会给与你一个默认的构造方法
如果类中有了有参数构造方法,系统就会默认将默认的构造方法去掉
注意:
当类中有了有参数的构造方法,将不再有默认的构造方法

构造方法重载

方法名字相同,参数列表不同(顺序不同,个数不同,数据类型不同)

使用构造方法创建对象

类名

this关键字

①:在对象的内部直接使用this作为自身的引用
如 this.age=age;
②:构造方法中调用本类的其他构造方法来传递参数
注意:
在构造器中只能放在第一行,
普通的方法中没有这个要求,
③:成员变量和局部变量相同时
默认是调用的是局部变量的内容,需要使用this.成员属性来调用成员变量
④:使用this来进行本身传递
method(this);
例子:赛车引擎升级 Racing 和RepairFactroy
⑤:this实现链式调用
⑥:使用this的本身传递和链式调用,建造者模式
⑴特点:
使用简单的对象一步一步的构建一个复杂的对象
⑵什么时候使用:
一些基本的部件不会改变,其他组合的部件会改变
⑶优点:
很好的扩展,更好的控制风险
⑷缺点:
必须要有共同点,可能会需要多个建造者类

面向的对象的三大特性

封装

①:什么是封装?
把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对 象操作,对不可信的进行信息隐藏。
②:封装的意义?
封装是一种信息隐藏技术,在java中通过控制成员的访问权限实现封装,即使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。
③:封装的好处?
适当的封装可以让代码更容易理解和维护,也加强了代码的安全性。
减少代码的耦合
类内部的结构更容易更改
④:封装的实现?
关键字 private的使用 私有化的

继承

①:什么是继承?
在现实生活中:继承是先有父类----子类
在代码中:继承是先有子类-----父类----泛化
一个新类可以从现有的类中派生,这个过程叫做继承
②:继承的意义?
1:代码的复用
2:大大的提高开发效率
③:继承的关键字
Extends
子类拥有父类的属性的方法(private 成员由于权限不能访问)
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
子类可以使用自己的方式来实现父类的方法(后面讲)—方法重写
④:构造方法和继承
构造方法是不能够被继承,只能调用 new
当构建子类对象的时候会优先隐式调用的父类的无参数构造方法,有父类向外扩展
⑤:继承的super关键字
1:super关键字在子类方法中是显示的调用父类的构造方法,
如果是默认的(空)构造器,可以省略super,
而且必须位于子类构造器的第一行
2:super也可以调用父类的成员属性和方法
3:super和this在构造器中不能同时存在,在调用成员属性和方法的时候可以
⑥:继承总结
1:所有的类都是继承自Object
2:哪些能继承:
公开的方法和成员属性
3:不能被继承:
构造器,private修饰的,(静态的成员属性和方法后面讲)
3:只能继承一个,单继承(你只有一个亲爹),(可以实现多个接口(你可以有多个干爹))