|NO.Z.00042|——————————|BigDataEnd|——|Java&static關鍵字繼承.V02|-------------------------------------|Java.v02|static關鍵字|基本概念|程式設計使用|
阿新 • • 發佈:2022-04-03
[BigDataJava:Java&static關鍵字繼承.V02] [BigDataJava.面向物件] [|章節三|static關鍵字和繼承|static關鍵字基本概念|static關鍵字使用|]
一、static關鍵字基本概念
二、static關鍵字的作用 二、程式設計程式碼:驗證static關鍵字修飾的靜態成員(類成員) 是否被所有物件共享### --- static關鍵字基本概念 ~~~ ——> 使用static關鍵字修飾成員變量表示靜態的含義, ~~~ ——> 此時成員變數由物件層級提升為類層級,也就是整個類只有一份並被所有物件共享, ~~~ ——> 該成員變數隨著類的載入準備就緒,與是否建立物件無關。 ~~~ ——> static關鍵字修飾的成員可以使用引用.的方式訪問,但推薦類名.的方式。
### --- 程式設計程式碼
/*
程式設計實現People類的封裝
*/
三、程式設計程式碼public class People { // 1.私有化成員變數,使用private關鍵字修飾 private String name; private int age; //private String country; // 隸屬於物件層級,也就是每個物件都擁有獨立的一份 //public static String country; // 隸屬於類層級,也就是整個類只有一份並且被所有物件共享 private static String country; // 3.在構造方法中呼叫set方法進行合理值的判斷 public People() {} public People(String name, int age/*, String country*/) { setName(name); setAge(age); //setCountry(country); } // 2.提供公有的get和set方法,並在方法體中進行合理值的判斷 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if(age > 0 && age < 150) { this.age = age; } else { System.out.println("年齡不合理哦!!!"); } } public static String getCountry() { return country; } public static void setCountry(String country) { //this.country = country; People.country = country; } public void show() { System.out.println("我是" + getName() + ",今年" + getAge() + "歲了,來自" + getCountry()); } }
### --- 程式設計程式碼
/*
程式設計實現People類的測試
*/
四、編譯列印public class PeopleTest { public static void main(String[] args) { // 3.驗證static關鍵字修飾的靜態成員(類成員)是否與建立物件無關 類名.的方式 => 無關 //System.out.println("獲取到的國籍資訊是:" + People.country); // null System.out.println("獲取到的國籍資訊是:" + People.getCountry()); // null // 1.使用有參方式構造兩個People型別的物件並列印特徵 People p1 = new People("zhangfei", 30/*, "China"*/); p1.show(); // zhangfei 30 China People p2 = new People("guanyu", 35/*, "China"*/); p2.show(); // guanyu 35 China System.out.println("--------------------------------------------"); // 2.驗證static關鍵字修飾的靜態成員(類成員) 是否被所有物件共享 => 共享 //p1.country = "蜀國"; p1.setCountry("蜀國"); //System.out.println("第一個物件的國籍是:" + p1.country); // 蜀國 //System.out.println("第二個物件的國籍是:" + p2.country); // 蜀國 System.out.println("第一個物件的國籍是:" + p1.getCountry()); // 蜀國 System.out.println("第二個物件的國籍是:" + p2.getCountry()); // 蜀國 People p3 = new People(); //System.out.println("第三個物件的國籍是:" + p3.country); // 蜀國 System.out.println("第三個物件的國籍是:" + p3.getCountry()); // 蜀國 } }
C:\Users\Administrator\Desktop>javac PeopleTest.java
C:\Users\Administrator\Desktop>java PeopleTest
獲取到的國籍資訊是:null
我是zhangfei,今年30歲了,來自null
我是guanyu,今年35歲了,來自null
--------------------------------------------
第一個物件的國籍是:蜀國
第二個物件的國籍是:蜀國
第三個物件的國籍是:蜀國
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)