发表于: 2018-01-24 01:35:43
2 761
今天完成的事情:
1.关键字this和static。
this的作用:强调调用本类的方法;调用本类的属性;调用本类的构造方法(this()必须放在重载构造方法的首行,相互调用的时候要留出口);表示当前对象。
static作用:声明属性后,这个属性会被所有对象共享,此时成为全局属性(或静态属性或类属性),可以用格式:类名.static属性直接调用;声明方法后,方法称为类方法,调用static方法与调用static属性相同,非static方法可以调用static属性或方法,反之不行;
2.代码块,{}中的一段代码,根据具体位置及声明关键字而不同。普通代码块(直接在方法或语句中定义),构造代码块(写在类中),静态代码块(使用static声明的“static{代码}”),同步代码块(多线程)。
3.构造方法私有化和内部类。构造方法私有化就是将构造方法封装,但是封装以后外部无法调用,所以解决办法是再类内部产生本类的实例化对象,并利用static声明为静态属性,之后再用static声明一个静态的getter方法。这样可以通过类名调用静态方法,得到属性。构造方法私有化可以控制实例化对象的产生。
内部类,类内部和方法中定义的类,可用public、private,static声明,三个关键字的属性不变。内部类还可以拿到类外部,唯一好处是方便访问内部类的私有属性。方法中的内部类不能直接访问方法的参数,需在参数前加final关键字。
4.继承与覆写。
继承,子类除了有父类的属性和方法,还有自己的属性和方法,扩展了父类的功能。实现继承的格式“class 子类 extends 父类{}”。继承,只能是单继承,而且对于父类中的私有成员只能通过setter和getter方法访问操作。在子类对象初始化时默认先初始化父类属性。因为再子类的构造方法中有一个默认的super();语句。
覆写,子类中定义了与父类中同名的方法,权限是子类中的方法不能比父类中的访问限制权限严格。但是从private到default的不算覆写。
对于属性有“属性的覆盖”,也是同名属性。但是并没有盖住,两个都存在。再子类访问中,是就近访问本类中的属性,对于父类的用 “super.属性”调用。
super可以调用父类中的构造方法,普通方法和属性。super(参数,参数,···)可以调用相应的构造方法。
final(完结器)关键字,用其声明的类不能有子类;声明的方法不能被子类覆写;声明的变量成为常量,不能改写,且名字必须全部大写。
5.抽象类与接口。
抽象类。类是对象的模版,而抽象类是类的模版。抽象类一定包含抽象方法,抽象方法也只能属于抽象类,两者都用abstract声明,抽象方法不用实现,抽象类必须被子类单继承,并且子类中必须覆写抽象类中的全部抽象方法。
接口,用interface定义,包含全局常量和公共抽象方法(必须是public,也是默认)。接口必须通过子类使用,子类通过implement可以实现多个接口,对于其中的抽象方法必须全部覆写。子类在实现接口的同时,可以继承抽象类。接口可以继承多个接口,但不能继承抽象类。
明天的计划:
1.对象多态,接口与抽象类的应用。
2.object类与包装类。
3.包及访问权限。
遇到的问题:
没遇到太大问题,已经做记号了。
收获:
this与static的区别,private<default<public的区别,覆写与重载的区别,extends继承,main方法各个参数的含义,final关键字,接口和抽象类。
知道单列设计模式,单向链表
评论