在java中有一個static的關鍵字,它用來修飾類的成員。如果用static修飾屬性,該屬性被稱為靜態屬性
靜態屬性的訪問格式如下
類名.屬性名
如果沒有修飾靜態屬性示例代碼如下
class Xuesheng1{String name;int age;String school="A大學";public Xuesheng1(String name,int age) {this.name=name;this.age=age;}public void info() {System.out.println("姓名:"+this.name+",年齡:"+this.age+",學校:"+school);}
}public class Jingtaishuxing {public static void main(String[] args) {Xuesheng1 stu1=new Xuesheng1("張三",18);Xuesheng1 stu2=new Xuesheng1("李四",19);Xuesheng1 stu3=new Xuesheng1("王五",20);stu1.info();stu2.info();stu3.info();stu1.school="B大學";System.out.println("修改stu1學校對象的學校信息為B大學后");stu1.info();stu2.info();stu3.info();}}
運行結果是
姓名:張三,年齡:18,學校:A大學
姓名:李四,年齡:19,學校:A大學
姓名:王五,年齡:20,學校:A大學
修改stu1學校對象的學校信息為B大學后
姓名:張三,年齡:18,學校:B大學
姓名:李四,年齡:19,學校:A大學
姓名:王五,年齡:20,學校:A大學
可以看出,張三的學校由A大學變為B大學,其他人沒有變。如果不用static,對象數量少還好說,數量多了,就非常麻煩,現實中一個學校不可能就三個學生。
可以用static用來修飾school屬性
示例代碼如下
class Xuesheng1{String name;int age;static String school="A大學";public Xuesheng1(String name,int age) {this.name=name;this.age=age;}public void info() {System.out.println("姓名:"+this.name+",年齡:"+this.age+",學校:"+school);}
}public class Jingtaishuxing {public static void main(String[] args) {Xuesheng1 stu1=new Xuesheng1("張三",18);Xuesheng1 stu2=new Xuesheng1("李四",19);Xuesheng1 stu3=new Xuesheng1("王五",20);stu1.info();stu2.info();stu3.info();stu1.school="B大學";System.out.println("修改stu1學校對象的學校信息為B大學后");stu1.info();stu2.info();stu3.info();}}
修改后的代碼變化不大,唯一變化是school由static修飾
static String school="A大學";
之前的代碼沒有用static修飾
String school="A大學";
修改后的運行結果如下
姓名:張三,年齡:18,學校:A大學
姓名:李四,年齡:19,學校:A大學
姓名:王五,年齡:20,學校:A大學
修改stu1學校對象的學校信息為B大學后
姓名:張三,年齡:18,學校:B大學
姓名:李四,年齡:19,學校:B大學
姓名:王五,年齡:20,學校:B大學
和第一程序運行結果對比,可以發現三個學生的學校都變了。
經過static修飾過的屬性就是靜態屬性,可以影響全域。