面向对象三大特征(思想)
封装
思想:包装一段代码
优点:
1、降低耦合度
2、美化
3、保护内部
4、方便使用
包
本质:一个文件夹
创建包
1、选择src文件夹,点击鼠标右键,选择new,选择package
2、填写包名
注意: 包名使用全小写,不要用数组开头,不要出现特殊符号
包名的命名潜规则: com.公司名称缩写.作用
注意:.表示下一层文件夹
关键字: package
导包
关键字:import
为什么要导包: 所需使用的类与当前类不在同一个包中
访问权限修饰符
意思:限制属性,方法,构造函数,类等的使用范围
分类:
关键字 | 意义 | 范围 |
public | 公共的 | 当前项目中 |
protected | 受保护的 | 当前包中或继承关系 |
不写 | 默认的 | 当前包中 |
private | 私有的 | 当前类中 |
总结
一般情况下
属性用private,方法与类用public修饰
属性用private修饰后需提供get与set方法
继承
概念:
生活中的继承:晚辈获取长辈留下的财产与精神
代码中的继承:子类拥有父类所有属性与方法,构造函数除外
多个类(B1,B2)抽取其共同点形成了一个类(A)
判断类A是否与类B有继承关系
如果类B与类A存在继承关系,可以让类B继承与类A,此时类B将拥有类A的所有属性与方法
类B:称为子类
类A:称为父类
优点:1、减少代码
2、使代码结构清晰
3、降低代码冗余度
语法:
访问权限修饰符 class 子类名 extends 父类名{
属性
构造函数
方法
}
注意:
1、Java中只有单继承
2、如果没有写继承,那么系统会默认继承于object
3、如果父类中的方法与子类中方法名相同,返回值类型相同,形参列表相同,子类访问权限修饰符大于等于父类访问权限修饰符,那么该方法称为重写
super
概念:子类中使用父类中的内容
使用:
属性
特殊情况:子类中的属性名与父类属性名相同,如何区分?
子类:this.属性名;
父类:super.属性名
方法
特殊情况:子类重写父类所有方法,在子类中使用该方法,如何区分是子类方法还是父类方法?
子类:this.方法名(实参列表);
父类:super.方法名(实参列表);
构造函数
特殊情况:创建子类对象时,需要给父类构造函数传值
语法:
super(实参列表);
注意:一定要在子类构造函数第一行
多态
概念:一个事物的多种形态
对象:
如:类A继承于类B
类A:子类
类B: 父类
类名A 对象名A = new 类名A();
类名B 对象名B = 对象名A; //子类对象转为父类对象,可以自动转换
类名A 对象名A2 = (类名A)对象名B; //父类对象转化为子类对象,需强制转换
方法
重写
发生在继承关系中
子类访问权限修饰符必须大于等于父类访问权限修饰符
返回值类型相同
方法名相同
形参列表相同
方法体不同
重载
发生在同一个类中
方法名相同
形参列表不同
方法体不同