/**
* static關鍵字的使用
*
* 1.static:靜态的
* 2.static:可以用來修飾:屬性、方法、代碼塊、内部類
* 3.static修飾屬性:靜态變量(類變量)
* 3.1屬性:按是否使用static修飾,又分為:靜态屬性(類變量) vs 非靜态屬性(執行個體變量)
* 執行個體變量:我們建立了類的多個變量,每個對象都獨立的擁有一套類中的非靜态屬性。當修改其中一個非靜态屬性
* 時,不會導緻其他對象中同樣的屬性值的修改。
* 靜态變量:我們建立了類的多個對象,多個對象共享同一個靜态變量,當通過某一個對象修改靜态變量時,會導緻
* 其他對象調用此靜态變量時,是修改過了的。
* 3.2 static修飾屬性的其他說明:
* ① 靜态變量随着類的加載而加載,可以通過 “類.靜态變量” 的方式進行調用。
* ② 靜态變量的加載要早于對象的建立
* ③ 由于類隻會加載一次,則靜态變量在記憶體中也隻會存在一份,存在方法區的靜态域中。
*
* ④ 類變量 執行個體變量
* 類 yes no
* 對象 yes yes
*
* 4.static修飾方法:靜态方法
* ① 随着類的加載而加載,可以通過 “類.靜态方法 ” 的方式進行調用
* ② 靜态方法 非靜态方法
* 類 yes no
* 對象 yes yes
* ③ 靜态方法中隻能調用靜态的屬性或方法。
* 非靜态方法中,既可以調用非靜态的方法或屬性,也可以調用靜态的方法或屬性。
* 5.static注意點:
* 5.1在靜态的方法内,不能使用this和super關鍵字。
* 5.2關于靜态屬性和方法的使用,都從生命周期的角度去了解
* 6.開發中,如何确定一個屬性是否要聲明為static?
* >屬性是可以被多個對象所共享的,不會随着對象的不同而不同的
* 開發中,如何确定一個方法是否要聲明為static?
* >操作靜态屬性的方法通常設定為static的
* >工具類中的方法,習慣上聲明為static的。比如 Math、Arrays
*/
1 package com.fu.statictest;
2
3
4 public class StaticTest {
5 public static void main(String[] args) {
6 Chinese c1 = new Chinese();
7 c1.name = "姚明";
8 c1.age = 40;
9 c1.nation = "CHN";
10
11 Chinese c2 = new Chinese();
12 c2.name = "馬龍";
13 c2.age = 30;
14 c2.nation = "CHNINA";
15
16
17 System.out.println(c1.nation);//CHNINA
18 System.out.println(c2.nation);//CHNINA
19 c1.eat();
20 Chinese.show();
21 c1.show();
22
23 }
24 }
25
26 class Chinese{
27 String name;
28 int age;
29 static String nation;
30 public void eat(){
31 System.out.println("中國人吃中餐");
32 }
33 public static void show(){
34 System.out.println("我是一個中國人");
35 }
36
37 }
此為本人學習筆記,若有錯誤,請不吝賜教