【java学习】修饰符

来源:互联网 发布:dchp mac地址 时间 编辑:程序博客网 时间:2024/04/30 19:10

1,访问权限:public, private, protected,friendly

1)默认权限

不写public, private, protected时,默认为friendly(default权限、package权限、同包权限)

2)区别

区别

2,访问控制

1)类(class)

final―终态类,表示该类不能被继承
abstract―抽象类,不能新建对象

2)变量(variable)

static―静态变量,被类的所有实例共享。
(对于整型静态变量,如果没有赋初值,则默认为0)
final―常量,定义后不能修改
transient―告诉编译器,在类对象序列化的时候,此变量不需要持久保存
volatile―指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理

3)方法(method)

static―静态方法,并不需要创建类的实例就可以访问静态方法
final―常方法,所有子类不能覆盖该方法,但可以重载。(final修饰方法中的参数,称为最终参数)
abstract―抽象方法,在抽象类中没有实现的方法
native―本地方法,java调用非java代码的接口。实现由非java实现

4)接口(interface)

接口中的变量总是需要定义为“ public static final 接口名称”,但可以不包含这些修饰符,编译器默认如此。
接口中的方法只能使用public abstract修饰符。

3,static

1)静态变量

被类的所有实例共享。

对于整型静态变量,如果没有赋初值,则默认为0。

2)静态代码块

public class Test{    static int a;//静态整型,默认为0.    //静态语句块    static{       int x=5;//局部变量,静态代码块执行完后,即销毁。       a=3;//全局变量    }    static int x,y;//x不受上述局部变量的影响,初始值为0.}

在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法。

执行顺序(优先级从高到低):静态代码块 > mian方法 > 构造代码块 > 构造方法。

3)静态方法

并不需要创建类的实例就可以访问静态方法。

①限制(main方法同理)

A,它们仅能调用其他的static 方法
B,它们只能访问static数据
C,它们不能以任何方式引用this 或super(因为this是与实例相关的,super 与继承有关)

原创粉丝点击