一、Java中的访问权限有public、private、protected以及默认权限四种,以下是对这四种访问权限修饰符的一点比较:
public: 被public修饰的属性方法在任何情况下均可被调用。
protected: 同包内或者不同包的子类中均可调用。
默认: 只有同包中可被调用,不同于protected的重要一点就在于子类与父类不包 时不能被访问。
private: 只有同一个类中可被调用,即使同包的子类也不能访问。
由此可得出访问权限从高到低应该是:
public > protected > 默认 > private
另外需要注意的一点是,不能用private或者protected修饰类。
二、static与final关键字
近期在做画板和五子棋都有使用到这两个关键字,但具体的使用却不是那么清晰,昨天一课 之后也对这两个关键字做一个小结。
Static:可用来定义属性、方法。在程序中使用static声明的属性称为全局属性或者静态属性,static属性被所有的对象所共享。由于Static定义的属性或者方法先于类产生,在访问static属性时可以直接通过类名称调用,比如画图板中储存形状的队列使用static定义后,在其他类中的调用便是如此。
使用static声明的方法同样可以直接通过类名称调用,但要注意的一点是非static声明的方法可以调用static声明的属性或者方法,但static声明的方法不能调用非static声明的属性或方法。
public class Student {
private String name = "张飒";//非静态属性
public static void test(){//静态方法
System.out.println(" name = "+ name);//出错,不能调用非静态属性
fun(); //出错,不能调用非静态方法
}
public void fun(){//非静态方法
System.out.println("hello");
}
}
还有一个概念就是静态代码块,也就是使用static关键字声明的代码块,如下:
static{
}
在程序运行中静态代码块优先于main方法执行,且只执行一次。这是由于程序执行的过程是JVM>>>加载类(static)>>>执行(main ),所以在执行main方法前,会执行该类中定义的static代码块和初始化其中的static变量。
final相对而言没有那么复杂的特性,final关键字则可用来定义类、方法和属性。
正如final的英文含义所示,final定义的类不能有子类,声明的方法不可被子类覆写,定义的变量即是常量,不可再被修改。
一点需要注意的命名规则是:使用final声明变量时,字母要全部大写如:
public static final int MAX = 100;
以上便是Java关键字小结第一部分,在后面学习过程中会继续完善。。。