2019/7/1学习总结(下午)
1 JAVA部分
1.1 信息隐藏
在JAVA中,类的属性是不透明的,方法是公开的。
子类可以通过super
语句来访问父类的构造函数,并且也可利用该方式读/写从父类继承来的private属性变量。
因此,子类继承了父类的全部信息,但是从外界获取不管是子类还是父类的信息,都只能通过特定的方法实现(即getter,setter
方法)。
1.2 this
this
语句有三大作用:
1.2.1 前缀this.
代表类变量,将其与形参区分开。
1.2.2 前缀this.
代表类方法,将其与所在的同名方法区分开。
1.2.3 this(形参1,形参2,...)
还可用来指代构造函数。
1.3 抽象类和接口
抽象类:其方法中含有抽象方法。
格式为
public abstract class A
{
public abstract void B();
}
接口:特殊的类,它的"方法"都没有实现。
格式为
public interface A
{
public void B();
}
普通类继承抽象类及接口时,必须实现所有方法。
1.4 转型、多态&解耦、契约精神
1.4.1 转型
转型规则:
一般情况下,子类可以转化为父类(因为它含有父类的全部信息),但是父类不能转化为子类。但当该父类是由一个子类转化来的,它可以再次转化,变成原来的子类。
即
Father object1 = new Son();//legal
Son object2 = new Father();//illegal
Son object3 = (Son) object1;//legal
/*这是针对一个具体对象而言的*/
1.4.2 多态&解耦
转型实现了多态和解耦。
多态让程序的一句代码能包含很多种子类的不同的方法内涵;
解耦使两个类之间可以减少彼此“依赖”,程序员在写代码时,无需写着一个对象的同时去担心其它的对象跟它的兼容性。
1.4.3 契约精神
接口的存在让子类有了统一的规范,这就是契约精神。
但是,多态的存在又允许每个子类拥有不同的内涵,从而实现了既有纪律又自由的JAVA代码。