1. 代码块
1.局部代码块
在函数内部定义{},
不能使用static修饰。
2.构造代码块
也是类的成员,和成员变量和成员函数同级。
与成员变量先后有关,但与成员函数的先后无关。
构造对象时,先调用构造代码块,然后是构造函数。
3.静态代码块
构造代码块 + static修饰符。
静态代码块在类加载的时候执行,而且只执行一次。
手动控制类加载使用Class.forName("classname"),默认加载类时,执行代码块。
Class.forName(String,boolean initialize,ClassLoader)可以控制加载时是否初始化。
2. 继承
1.将共性的内容进行提取。
2.很好的进行了重用。
3.使用的关键字是extends
class B extends A {....}
4.java中不能多重继承,只能单重继承。
5.super : 超类,作用方面类似于this.
super(...) : 访问超类的构造函数.只能用在第一行。默认是super();
6.子类重写的方法权限 > 父类的方法权限.(权限可放大,可发扬光大,不能缩小,不能私有化)。
7.this是只想对象自身的引用
this:指向对象自身的引用。
this(...)表示的是调用当前类的构造函数.只能用在第一行。默认this();
3. final(最终)
1.修饰类,表示类不能被继承。
2.修饰方法,表示方法不能被重写。
私有方法可以加final,没有意义,编译通过。(不可能发生)
3.修饰变量,只能被赋值一次。如果不赋值,编译通不过。
4. abstract(抽象)
1.没有方法体的方法。必须使用abstract修饰。
2.抽象方法只能存在于抽象类中。
3.抽象类也必须要使用abstract修饰。
4.不能与哪些关键字共存:
static :static修饰可以更方便的访问公共的属性,抽象的直接访问时没有任何意义的
final :final修饰的就是最终的,不能更改,抽象需要去实例化的,需要操作
private :抽象类需要子类继承来实例化,私有是不能继承的
5.抽象类有构造方法,可以重载。
5. interface(接口)
在java中不直接支持多继承,因为会出现调用的不确定性。所以java将多继承机制进行改良,在java中变成了多实现。
面向接口编程,降低耦合度。
对于接口当中常见的成员:而且这些成员都有固定的修饰符。
1.全局常量: public static final
2.抽象方法: public abstract
6. 定义类Person,Man,Woman形成继承关系。
class Persion {
}
class Man extends Persion {
}
class Woman extends Persion {
}
7. super和this作用以及用法以及注意事项?
super : 超类,作用方面类似于this.
super(...) : 访问超类的构造函数.只能用在第一行。默认是super();
this是只想对象自身的引用
this:指向对象自身的引用。
this(...)表示的是调用当前类的构造函数.只能用在第一行。默认this();
8.定义接口
1.IWhite
2.IRich
3.IBeanti
4.定义类,实现以上三个接口.(WomenStar)
5.定义土豪类(EarchRicher.marring(...))
interface Iwhite {
public void skinWhite();
}
interface IRich {
public void walletRich();
}
interface IBeauti {
public void faceBeauti();
}
// 定义一个白富美接口继承三个接口
interface WhiteRichBeauti extends Iwhite, IRich, IBeauti {
}
//定义一个男土豪类
class RichMan {
public void marry(WhiteRichBeauti woman) {
System.out.println("Find Love!");
}
}
class RichManDemo {
public static void main(String[] args) {
//匿名内部类,面向接口编程
WhiteRichBeauti womanStar = new WhiteRichBeauti(){
public void skinWhite() {
}
public void walletRich() {
}
public void faceBeauti() {
}
};
RichMan man = new RichMan();
man.marry(womanStar);
}
}