`
xiaoer_1982
  • 浏览: 1811890 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

《Java面向对象编程》学习笔记7——修饰符

阅读更多



1.修饰顶层类(不是指在一个类中定义的类)包括abstract、public、final。局部变量只能用final修饰。

2.一个类中,可以访问类本身或内部类的实例的私有成员。

3.abstract修饰符:
形成抽象类和抽象方法,前者不能创建对象(但是可以创建一个引用变量,其类型时抽象类,但是它引用非抽象的子类的一个实例),后者不提供具体实现。抽象类中可以没有抽象方法,但是包含抽象方法的类必须是抽象类。若子类没有实现父类中所有的抽象方法,那么子类也必须被定义为抽象类。实现抽象方法直接使用覆盖。不存在抽象构造方法,更不存在抽象静态方法。abstact和final不能同时使用。

4.final修饰符:
final修饰的类不能被继承,没有子类。
final修饰的方法不能被子类的方法覆盖。
final修饰的变量是常量,只能赋值一次。
final不能修饰构造方法。
private类型由于其不能被子类方法所覆盖,其默认的为final类型。

注意:
a.final类型的成员变量必须显式初始化.其中实例变量还可以在构造方法中初始化。
b.若将引用类型的变量用final修饰,那么该变量只能始终引用一个对象。

5.静态修饰符:
用static修饰的成员变量和成员方法,可以直接通过类名访问。
用static修饰的代码块,JVM加载类的时候就会执行。

static变量在某种程度上类似于C语言的全局变量相似.
static方法可以直接使用类名进行访问,只能直接访问所属类的静态变量和静态方法。要访问非静态的变量和方法则使用一个对象引用来进行。但相对的,实例方法却可以直接访问所属类的静态变量和静态方法和实例变量以及实例方法。它必须被实现(也就是说不能被abstract,它俩永远是一对冤家)。但是要注意的是,方法的字节码都在方法区,而引用都在堆上。

static块:类的构造方法用来初始化类的实例,而类的静态代码块则可用于初始化类,给类的静态变量赋初值。它和静态方法一样,不能直接访问类的实例变量和实例方法,而必须通过实例的引用来访问它们。






分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics