关于类的修饰符

关于类的修饰符

 

对于类可以使用的说明符:

public abstract final (default)

 

对于类来说,只有两个访问说明符:public default。

 

对于方法和变量的说明符:

public protected (default) private staticfinal abstract native(调用本地方法JNI) synchronized(同步方法,用于多线程)

 

public protected (default) private是访问控制符

Public和protected的类可以被其他的包当中的类(protected是被子类)访问,但是在访问的类当中需要用import导入。

 

static 修饰的方法和变量都是属于类,而不是属于类的对象。 static方法和变量的引用都是直接通过类名引用的。

static方法当中不能调用非静态的方法和引用非静态的成员变量。但是在非静态的方法中是可以访问静态方法和变量的。

 

final

就是不可以被修改的。

变量不可以赋值,方法不可以被重写,类不可以被继承。

final 修饰一个方法的时候,就是说这个方法不能被子类覆盖(override)。

final类型的变量必须显示初始化,且初始化的方法必须是在申明时或者在构造方法中直接赋值,而不能通过调用函数赋值。

 

abstract

在类中没有方法体的方法,只有一个声明,就是抽象方法。

如果一个类有抽象方法,就是抽象类。一个抽象类的子类,必须实现抽象基类中所有的抽象方法。如果不想实现所有的抽象方法,则子类也成为一个抽象类。

有的时候,可以把一个没有任何抽象方法的类声明为abstract,目的是为了避免由这个类产生任何的对象。

抽象类就是用来继承的。

抽象方法就是用来给重写的。

 

构造方法、静态方法、私有方法、final方法不能被声明为抽象的方法。

 

static和private方法都是final 方法?

对的。

对static来说,因为static的数据或方法,属于整个类的而不是属于某个对象的,是不会和类的任何对象实例联系到一起。如果子类和父类之间存在同名的static方法名,却不是重载。这么说来,其实static修饰的方法也是final了。

对private方法来说必然是final的,因为私有方法都不可以被继承。

 

特别要注意一个问题:

    对于被static和final修饰过的实例常量,实例本身不能再改变了,但对于一些容器类型(比如,ArrayList、HashMap)的实例变量,不可以改变容器变量本身,但可以修改容器中存放的对象,这一点在编程中用到很多。

native

native方法是用户在Java中可以使用,但不能编写的方法。

JNI(Java Native Interface),它允许Java虚拟机(JVM)内部运行的Java代码能够与用其它编程语言(如C、C++、汇编语言)编写的应用程序和库进行互操作。

JNI最大的好处是它没有对底层Java虚拟机的实现施加任何限制,因此,Java虚拟机厂商可以在不影响虚拟机其它部分的情况下添加对JNI的支持。程序员只需编写一种版本的本地(Native)应用程序和库,就能够与所有支持JNI的Java虚拟机协同工作。JNI可以理解为Java和本地应用程序之间的中介。但是使用了JNI的程序失去了平台无关性。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值