JavaSE 学习参考:类的静态成员和静态方法

程序在运行时可能需要一些全局数据,比如远程资源的URL,标识名称,游戏中关卡的总数,当前的关卡,游戏角色的数量,还有一些实用工具用于格化转换,数据验证等。这些数据和功能属于全局概念,无需在运行时动态创建对象来维持这些数据和功能,而在程序在初始化应该为些数据分配空间和初始化。

Java使用static关键字在定义这全局数据和全局部功能的成员,称为静态属性和静态方法,由于Java程序最基本的单位是类,所以这些静态属性和静态方法也定义在类中,但需要注意是这类创建的对象和这些静态成员没有关系,对象并有维持这些成员数据。

既然作为全局成员因些访问也比较方便,访问静态属性直接通过类名.属性名,访问静态方法直接通过类名.静态方法,需要创建对象。当同类中其他成员方法(即非static方法,必须通过创建对象才能访问)和静态方法可以省略类名限定,但外部类访问必须加上类名限定。

静态方法内部除了可操作自身的定义局部变量外,只能访问外部的全局数据static属性。尽管它委身所在类中还定了其他成员变量,但不能访问。

importjava.text.SimpleDateFormat;

importjava.util.Date;

classMyTool {

privateStringstr;

publicstaticStringPATTERN="yyyy-MM-dd";

publicstaticString format(Datedate){

SimpleDateFormatsdf=newSimpleDateFormat(PATTERN);

returnsdf.format(date);

}

publicvoidsetStr(Stringstr) {

this.str=str;

}

publicString getStr() {

returnstr;

}

publicvoidlargeFistLetter(){

Strings=str.toLowerCase();

charch=s.charAt(0);

str=ch+str.substring(1,str.length());

}

}

publicclassDemo1 {

publicstaticvoidmain(String[]args) {

MyToolmt=newMyTool();

mt.setStr("Hello");

System.out.println(mt.getStr());

Datenow=newDate();

Stringstr=MyTool.format(now);

System.out.println(str);

MyTool.PATTERN="yyyy/MM/dd";

str=MyTool.format(now);

System.out.println(str);

}

}

程序运行的结果如下:

你可能感兴趣的:(JavaSE 学习参考:类的静态成员和静态方法)