java中的修饰符,java修饰符
JAVA中的修饰符
一、访问修饰符
访问修饰符有public、default、protected、private;
public修饰符:public修饰符可以修饰类、方法、变量、接口;public修饰的属性和方法的可见性为任意类;
default修饰符:默认修饰符为default修饰符;default修饰符可修饰类、方法、变量、接口;default修饰的变量的方法的可见性为同一包;
protected修饰符:protected修饰符可修饰方法、变量;protected修饰的变量和方法的可见性为同一包的类及其所有子类;
private修饰符:private修饰符可修饰方法、变量;private修饰的变量和方法的可见性为本类;private修饰的方法、变量,子类不可继承;
二、非访问修饰符
非访问修饰符有static、fianl、abstract
static修饰符:static修饰符可修饰方法、类变量;静态方法中只能直接调用静态变量;静态变量即为类变量,不管对象创建多少个,多只有一个拷贝;访问静态变量和静态方法时,可用类名.方法名(变量名)或者对象名.方法名(变量名);
final修饰符:final修饰符可修饰类、方法、变量;final变量只能被显示初始化且初始化一次;final修饰的对象的引用不能指向其他对象,但对象中的变量值可以被改变;final变量和static变量通常被用来设置类常量;
abstract修饰符:抽象方法和抽象类;抽象类不能实例化对象,类中含有抽象方法,那这个类就要定义成抽象类;抽象方法不能定义成static和final;抽象类可以不包括抽象方法;
实例如下:
class Number1{
//public、protected、private、default访问修饰符
public int a = 1;
int b = 2;
protected int c = 3;
private int d = 4;
public void geta(){
System.out.println("number1中的public方法a="+a);
}
protected void getb(){
System.out.println("number1中的protected方法b="+b);
}
private void getc(){
System.out.println("number1中的private方法c="+c);
}
//static、final
public static int a2 = 4;
public final int a3 = 5;
public static void geta2(){
System.out.println("number1中的public static修饰的方法a2="+a2);
}
public final void geta3(){
System.out.println("number1中的public final修饰的方法a3="+a3);
}
}
class Number2 extends Number1{
public static void geta2(){
System.out.println("number2中的继承的geta2的方法a2="+a2);
}
/*public static void getd(){
System.out.println("number2中的继承的geta2的方法d="+d);
}d变量为Number1中的私有变量,不可继承*/
/*public final void geta3(){
System.out.println("number1中的public final修饰的方法a3="+a3);
}因为方法定义为final,不能被子类修改*/
}
public class DecorateTest {
public static void main(String[] args){
Number1 aa = new Number1();
aa.geta();
aa.getb();
aa.geta2();
aa.geta3();
/*aa.getc();不能调用,该方法为私有方法,只能在Number类中可以使用*/
//子类Number2的实验
Number2 bb = new Number2();
bb.geta();
bb.getb();
/*bb.getc();不能调用,该方法为私有方法,不能被继承*/
bb.geta2();
bb.geta3();
}
}
结果如下:
number1中的public方法a=1
number1中的protected方法b=2
number1中的public static修饰的方法a2=4
number1中的public final修饰的方法a3=5
number1中的public方法a=1
number1中的protected方法b=2
number2中的继承的geta2的方法a2=4
number1中的public final修饰的方法a3=5
相关文章暂无相关文章