JAVA学习笔记——JAVA修饰符类型

目标:了解修饰符类型

1. JAVA修饰符类型——类:
1)public的类、类属变量及方法,包内及包外的不论什么类均能够访问;
2)protected的类、类属变量及方法,包内的不论什么类,及包外的那些继承了此类的子类才能访问;
3)private的类、类属变量及方法,包内包外的不论什么类均不能访问;
4)假设一个类、类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的不论什么类都能够访问它,而包外的不论什么类都不能访问它(包含包外继承了此类的子类),因此,这样的类、类属变量及方法对包内的其它类是友好的,开放的,而对包外的其它类是关闭的;
5)访问范围:public > protected > friendly > private;


6)final类不能被继承;
7)abstract类:假设要使用abstract类,之前必须首先建一个继承abstract类的新类,新类中实现abstract类中的抽象方法。


2. JAVA修饰符类型——变量:
1)Java中没有全局变量,仅仅有方法变量、实例变量(类中的非静态变量)、类变量(类中的静态变量)。
2)方法中的变量(方法变量)不可以有访问修饰符。所以以下访问修饰符表仅针对于在类中定义的变量。
3)能够通过实例变量初始化器来初始化较复杂的实例变量,实例变量初始化器是一个用{}包括的语句块,在类的构造器被调用时执行,执行于父类构造器之后,构造器之前。
4)类变量(静态变量)也能够通过类变量初始化器来进行初始化,类变量初始化器是一个用static{}包括的语句块,仅仅可能被初始化一次。

  • 从程序语法的角度而言,程序会在三个地方为实例变量进行初始化的工作:
    1)定义实例变量的时候进行初始化
    2)非静态初始化块中对实例变量进行初始化
    3)在构造器中对实例变量进行初始化
  • 以上的3种方式中,第一和第二种方式的初始化工作比第3种方式更早执行,而且第一和第二种方式的初始化优先性是一样的,他们谁优先取决于在类(源程序)中的先后顺序。
  • 构造器:public 类( , ) { }
  • 静态初始化器:static {}
  • 非静态初始化器:{}
  • 执行顺序:静态初始化–>定义实例变量==非静态初始化–>构造器

4)public变量能被任何类访问;
5)protected变量能被同一包中的全部类访问,也能被所有子类访问(包内&包外);
6)private变量仅能被当前包访问;
7)缺省(无访问修饰符)变量能被同一包中全部类访问,不能被不同包的类访问(包括包外子类)。


8)static变量:静态变量,能够被类的全部实例共享,不需要创建类的实例就可以访问;
9)final变量:常量,不能更改;
10)transient变量:告诉编译器,在类对象序列化的时候,此变量不需持久保存;
11)volatile变量:指出可能有多个线程改动此变量,要求编译器优化以保证对此变量的改动可以被正确的处理。


3. JAVA修饰符类型——方法:
1)类的构造器方法不可以有修饰符、返回类型和throws子句;
2)类的构造器方法被调用时,它首先调用父类的构造器方法,然后执行实例变量和静态变量的初始化器,然后才执行构造器本身;
3)假设构造器方法没有显示的调用一个父类的构造器,那么编译器会自动 加上一个默认的super()–>(无参数的哦);
4)注意private构造器的使用技巧


5)public方法:能够被全部类访问;
6)protected:能够被同一包中的全部类访问,能够被全部子类访问(包内&包外);
7)private:仅仅被当前类访问;
8)缺省 无访问修饰符:能够被同一包中全部类访问,包外子类不能访问。


9)static方法:静态方法(类方法),不需要创建类的实例就能访问;
10)final方法:防止任何子类重载;
11)abstract方法:抽象方法,类中已经声明而没有实现的方法,不能将static/ final/ 类的 构造器方法声明为abstract;
12)native方法:在类中没有实现,參见Sun的Java Native接口(JNI),JNI提供了执行时载入一个native方法的实现,并将其于一个Java类关联的功能
13)synchronized方法:多线程的支持,当该方法被调用时,没有其他线程可以调用该方法,其他的synchronized方法也不能调用该方法,直到该方法返回。


4. JAVA修饰符类型——接口:
1)接口不可以定义其声明的方法不论什么实现;
2)接口中的变量总是需要定义为"public static 接口名称";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值