封装
概念:包装(为了实现高内聚低耦合)
优点:
1保护内部
2降低耦合度,联系越弱越好
3方便使用
Java中包的本质就是文件夹,
包的命名
1,必须是全小写,不能以数字开头,不能使用关键字或保留字,不建议用中文,不要使用特殊符号
2,潜规则,com.公司名称缩写/项目名.分类名称(.表示下级文件夹 . 相当于斜杠,一个.表示一个文件夹)
包的关键字:package:说明当前文件所在的包
同一个包中文件名不可以重复不同包下的文件名称可以相同
导包:在当前Java文件中使用别的文件夹下的Java文件,需要导包(开发工具自动导包)
导报关键字:import
访问权限修饰符
作用:限定其修饰内容使用范围
分类
public 公共的 当前项目中都可以使用
protected 受保护的 当前包中或继承关系中使用
不写 默认的 当前包中使用
private 私有的 当前类中使用
经验:
属性使用private修饰,方法使用public修饰,特殊情况特殊处理.
自己写公共的get() set()方法获取或者修改private属性值.可以在get() set()方法中对输入的值加以判断是否合法.
标准类:
私有化所有属性,提供一个无参构造,提供一个全参构造,提供所有属性的get()set()方法,重写toString方法
访问权限修饰符 class 类名{
private 属性
构造函数
get
set
普通方法
toString
}
继承
概念
生活中:子代获得父辈遗留下的精神或物质财产
代码中:子类将拥有父类所有的属性和方法(构造函数除外)
注意:
1一个子类只能有一个直接父类(单继承)
2是否存在继承关系(从生活经验来看不能让猪类继承于人类)
3所有类都是Object类的子类
4没明确写继承于哪个类的类默认继承于Obiect类
语法格式
访问权限修饰符 class 子类名 extends 父类名{
属性
方法
构造函数
}
super
含义:谁调用super所在的方法,super就代表谁的父类对象
创建子类对象时会创建父类对象,子类对象默认会调用父类的无参构造函数,父类没有无参构造函数子类就会报错
子类构造函数必须调用父类构造函数,子类构造函数中默认有一行super()
使用:
场景一:调用父类构造函数
语法:super(实参列表)
场景二:子类对象属性与父类对象属性重名时(父类对象该属性不能是private修饰)
语法:super.属性名 父类提供属性
属性名 子类特有的属性
场景三:子类方法名与父类方法名相同形参列表相同时
super.方法名(实参列表) 父类方法
方法名(实参列表) 子类方法
super只能在子类中使用.
多态
概念:一个事物的多种形态
物的多态
子类对象转换为父类对象:自动转型
父类名 对象名 = 子类对象;
父类对象转换为子类对象:强制转换(有风险)
子类名 对象名 = (子类名) 父类对象
强制转换可能会出现异常
注:子类对象转成父类对象后无法使用子类特有的属性与方法
子类对象转成父类对象后可以使用父类提供的属性与方法
instanceof(关键字)
判断该对象是否属于该类
语法:父类对象/子类对象 instanceof 子类对象
返回值为boolean要有继承关系
事的多态
1重载
要求:同一类中,方法名相同,形参列表不同
2重写
(1)继承关系中
(2)子类该方法的访问权限修饰符不小于父类的该方法的访问权限修饰符
(3)返回值类型相同
(4)方法名相同
(5)方法体不同
继承中如果形参列表不同是重载不算重写
注:子类重写父类方法,子类重写后的方法将覆盖父类原有方法,子类即使转换为父类,该父类对象调用的还是重写后的方法
重载与重写区别:
1发生关系的位置不同,重载发生在同一个类中,重写在继承关系中
2访问权限修饰符要求不同,重载没有要求,重写子类必须不能小于父类
3返回值类型要求不同,重载没有要求,重写要求子类返回值类型必须与父类相同
4方法名要求相同,都要求方法名一致
5形参列表要求不同,重载要求形参列表不同,重写要求形参列表相同