1,封装
是一种面向对象的思想,类的封装,方法的封装,属性的封装
只通过对象.属性 可以对属性进行赋值。这样会存在隐患
1 ,属性的封装
1,步骤
private 类型 名称 (private int age;)
设置一个private私有变量,使用get set 进行获取和设置private私有变量.
get格式
public 返回值类型 get变量名(){
return 变量名;
}
也可以使用有参构造方法 this.变量名1= 变量名1(变量名相同)(public 类名
(类型 类名){})。
若是想进行对变量进行限制可以在set方法下进行判断是否赋值
public void setAge(int age){
if(age > 0){
this.age = age;
}else{
System.out.println("输入不合理");
this.age = -1;
}
}
注:boolean的获取和设置 is 和set
2,方法封装
private void 方法名(){}
只能在本来类中使用,出了本类则不能使用
解决方法:在本类中再定义一个public方法调用private才能使用
总结:写set 赋值和get取值方法,对了规范以后对对象的操作
可以隐藏一部分的代码的逻辑判断
2,继承
所谓继承就是一个类使用extends关键字去继承另一个类
语法格式:
class B extends A {
}
B就能使用A中的方法,但是使用A类方法时需要在B类{}内使用,不能在类下直接使用。
注:父类的私有成员属性和方法子类无法直接使用,可以通过get获取属性,通过父类方法调用父类私有方法
注:子类的无参和有参构造方法中都有一个super();且放在{}的首行,只是隐藏了,所以当创建子类对象时,会优先调用父类构造方法,然后再输出子类构造的system.out.println();中的语句,
注:当在子类中调用父类的有参构造,则创建子类对象时就不会再调用父类的无参构造。
1,重写父类的方法
当父类的需求满足不了子类的需求了,需要对父类的方法进行重写。
1.必须得有继承
2.父类的成员方法必须是公开的
3.重写的时候子类的方法必须和父类一模一样(返回值,参数,方法的名字)
4.必须在子类中重写父类的方法
3,多态
什么是多态:不同类的对象对同一消息做出不同的响应就叫做多态。
多态的优势:可以使咱们的代码更加简洁方便灵活
多态 存在的三大条件;
①:有继承关系
②:子类重写父类的方法
③:父类引用指向子类对象
父类引用指向子类对象Father f = new Son();
编译看左边,运行看右边。
注: 父类不能调用子类独有的方法
向上转型和向下转型
向上转型:通过子类对象(小范围)去实例化父类对象(大范围)(自动转换)
注:缺点不能使用子类独有的方法,若是要是要使用只能向下转型
向下转型:通过强转实例化父类对象(大范围) 转为子类对象
测试左边的对象是否是右边类的实例,对象 instnaceof 类 返回值是布尔类型数据