标签:blog http io color 使用 java strong 文件 数据
类的访问控制符:
虽然访问控制符有四种,但针对外部类来说,只需要公共的和默认的就够了。
public表示任何类都可以使用该类。
当一个类被定义为public的时候,它就可以在任何类里被访问了。
成员的访问控制:
成员(即成员变量和方法)能被其他类访问主要取决于两个方面因素:
- 成员变量和方法所在类的可见性是其能被正常访问的前提条件;
- 其次是成员变量和方法的访问控制符直接决定了是否可以被访问。
Static关键字:
Java中没有全局变量的概念。
若static修饰成员变量,当生成类的对象时,该类的所有实例都共享这一变量,而且也可以在未创建对象前访问该变量。这种变量只能在定义的时候初始化或者在静态代码块中被初始化。
用static修饰的代码块表示静态代码块,当JVM加载类时,就会执行该代码块,且只执行一次。如果静态代码块有多个,JVM加载类时会按其在类中出现的先后顺序依次执行。
当一个成员变量被修饰为final而非static时,属于类的实例变量(与静态变量相反),当类被加载进内存时,这个属性并没有给其分配内存空间,而只是定义了一个变量,只有当类被实例化时这个属性才会被分配内存空间,而实例化时同时执行了构造函数,所以属性被初始化,符合分配内存空间时就需要初始化而以后不再改变的条件。
当类的成员变量同时被修饰为static和final时,属于类变量。当类被加载到内存时就要为此变量分配内存,因为又被final修饰,在变量定义以后就给其初始化值。而构造函数是在当类被实例化时才会执行,所以不能用构造函数初始化static和final修饰的成员变量(否则会产生矛盾);该成员变量仍可以在static块中初始化。
static方法可以直接通过类名调用,任何实例也可以调用(这点和static成员变量一致)。不过static方法中不能使用this和super关键字,不能直接访问所属类的实例变量和实例方法,只能访问所属类的静态成员变量和静态方法。
因为static方法独立于任何对象,因此static方法必须被实现,而不能是abstract。
static是用来修饰成员变量和成员方法的,并不适用于局部变量中。
final的变量:
基本数据类型的变量和对象引用在被final修饰时含义并不相同。
package的使用:
包名一般小写,而类名中的字母会大写,这样在引用时,可以明显地分辨出包名和类名。
通过静态引入package可以直接引用某类的静态成员方法或静态成员变量。比如,import static java.lang.Math.PI使用import static导入类的静态资源,则在接下来的代码中可以直接使用PI而不是Math.PI。此外,还可以通过使用“*”代表引入类下的所有静态资源。
静态引入虽然方便,但因为该方法可能会在很大程序上影响着程序性能,所以尽量在某个静态变量或方法的访问频度很大时才使用。
标签:blog http io color 使用 java strong 文件 数据
原文地址:http://www.cnblogs.com/WeekeyJanelan/p/4098894.html