您的位置:首页 > 编程语言 > Java开发

java基础学习之(二):Java中的关键字

2015-06-29 16:38 549 查看
1、super

在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来。当new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部,所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况.

总结:new一个对象的时候,必须调用构造方法(语言规定),而构造子类时,必须调用父类的构造方法。

所以:

如果父类有无参构造方法,子类构造方法中可以不显示调用父类的构造方法;

如果父类有有参构造方法,子类构造方法必须使用如super("Lucy")显示调用父类的构造方法。

使用的地方

调用父类的构造方法:super("Lucy");一般要写在第一行。

调用父类的实例方法:super.method();

调用父类的成员变量:super.var;

静态方法或静态代码块中不能使用super

2、this

用到this的地方

构造方法互相调用;

this.name=name;

owner.setDog(this);

3、访问控制修饰符

修饰符种类:公开public、保护protected、默认、私有private

可修饰内容:成员变量、成员方法、构造方法

另外:顶层类只能由public或默认修饰



4、abstract

可以修饰类或者成员方法。

修饰的类为抽象类,不能被实例化;修饰的方法为抽象方法,无方法体。

注意事项:

抽象类中可以有非抽象方法;包括抽象方法的类必须是抽象类;继承抽象类后未实现父类所有抽象方法的类必须是抽象类。

没有抽象构造方法和抽象静态方法。

抽象类中可以有非抽象的构造方法。

抽象类不能被实例化,但抽象类可以创建一个引用变量,让它引用非抽象子类的实例。

抽象类和抽象方法不能被final修饰。

5、final

可以修饰非抽象类,非抽象成员方法和变量

final修饰的类不可被继承;修饰的方法不可被子类覆盖;修饰的成员变量只能被显示赋值一次,修饰的实例变量可以定义时赋值或在构造方法中赋值,修饰的静态变量特殊处理。

final不能修饰构造方法

private类型的方法默认是final类型的

final修饰的引用变量,不能改变引用的对象,但可以改变引用对象的内容

6、static

可以修饰成员变量,成员方法或代码块。

被修饰的变量和方法可以通过类名或实例名来调用。

静态方法中可以访问静态变量和静态方法,不可以用this,super等。

静态方法必须被实现,不能和abstract共存(abstract也不能和final共存)。

静态方法和实例方法的字节码都位于方法区。

静态代码块,在加载类的时候被且只被执行一次,多个静态代码块时,按他们出现的顺序执行,比main方法早。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: