Java面向对象中的构造函数和封装·2
- 什么是构造函数
- 一种特殊的方法
- 创建对象时用来初始化对象,每次使用new创建对象的时候,就会使用构造函数
- 与类具有相同的名称,但是没有返回值
- Java会自动为每个类提供一个默认构造函数
- 如果自己定义了构造函数,就不再使用默认构造函数,如果没有显示的写出默认构造函数,则会消失
- 注意点:如果构造函数之间互相调用,务必写在方法第一行
- 构造函数种类
- 默认构造函数
public 类名(){ //无参构造函数 } public 类名(){ //写自定义语句 } 有参构造函数 public 类名(参数类型1 参数名1,参数类型2 参数名2,参数类型3 参数名3){ //自定义方法体 }
- 构造函数的修饰符
- public 用的最多,用来创建对象
- private 私有化构造函数,不给外部创建对象,比如工具类,或者单例设计模式
- default 默认的话、只能在当前包里面使用new创建对象,几乎不用
- 什么是封装
- 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口及方法
- 在java中通过关键private,protected和public实现封装
- 什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。适当的封装可以让代码更容易理解和维护,也加强了代码的安全性
- 类封装
- 方法封装
- overload(重载,过载)
- 在一个类里面,方法名字相同,而参数不同,和返回类型无关
public void sleep() { System.out.println("睡觉"); } public void sleep(String address) { System.out.println(address); System.out.println("睡觉2"); }
- override(重写,覆盖)
- 子类对父类的允许访问方法的实现过程进行重新编写,返回值和形参都不能改变
- 返回值类型,方法名,参数类型以及个数
- 子类能够根据需要实现父类的方法
Bug? 不存在的!