一、靜态
1、static靜态的特點
(1)資料共享
(2)屬于類的.并不屬于對象
(3)優先于對象産生的
2、優于對象産生(構造器解釋)
在程式執行時,是先建立靜态構造器,再建立通用構造器。
public class Test03{
{
System.out.println("---我是通用構造器---");
}
static{
System.out.println("---我是靜态構造器---");
}
//建立構造方法
public Test03(){
System.out.println("------構造方法------");
}
//定義主方法
public static void main(String[] args){
new Test03(); //調用構造方法
}
}

3、靜态屬性或方法使用類名去通路(靜态方法也可直接調用)
public class Test03{
static char level = 'D'; //定義靜态屬性
{
System.out.println("---我是通用構造器---");
}
//靜态方法會預設執行,不建立對象也會執行
static{
System.out.println("---我是靜态構造器---");
}
//建立構造方法
public Test03(){
System.out.println("------構造方法------");
}
public static void SStatic(){
System.out.print("She is " + size + ' '); //使用靜态屬性可以不用this
System.out.println("------我是靜态方法------");
}
//定義主方法
public static void main(String[] args){
Test03.SStatic(); //使用類名通路靜态方法
SStatic(); //直接通路靜态方法
}
}
二、通路權限
1、權限類别
public:公共的,所有成員都能通路
default:預設的,也稱包通路權限,在自己的包内才能通路,其他包内不能通路
private:私有的,在其他類中不能通路(包中可以有多個類)
2、練習
public class Test03{
public String a = "public"; //公有變量
String b = "default"; //預設變量
private String c = "private"; //私有變量
public static void main(String[] args){
Test03 Te = new Test03(); //建立對象
//主方法中通路三種類型的變量
System.out.println(Te.a);
System.out.println(Te.b);
System.out.println(Te.c);
}
}
在其他包(檔案夾)中則無法通路到變量b,在其他類中無法通路到變量c。
我們平時用的最多的就是public和private。
三、getter與setter
- 主方法類的内容:
public class Test03 {
public static void main(String[] args){
Test03_Person P = new Test03_Person(); //建立對象人
//年齡的文法沒有問題。但是,邏輯上不對,年齡不可能是負數!
// P.name = ”草帽路飛"; //給對象屬性指派
// P.age = -1;
//檢視這個人的名字和年齡
P.setName("草帽路飛"); //給私有成員屬性指派
P.setAge(-1); //給私有成員屬性指派
System.out.println(P.getName()); //擷取私有成員屬性
System.out.println(P.getAge());
P.act();
}
}
- 對象人類的内容
public class Test03_Person{
//成員安量是私有的
private String name;
private int age;
//setter原型
public void setName(String name){
this.name = name;
}
//保證我們的成員變量是值是規範的
public void setAge(int age){
if (age<0){
this.age = 0;
}else{
this.age = age;
}
}
//getter原型
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
//定義人的行為方法
public void act(){
System.out.println("行為:" + this.age + "歲大的" + this.name + "正在散步~");
}
}
- 結果
-
2、getter與setter的調出方法
在寫好屬性之後,空白處右擊,Generate,選Getter and Setter,就會自動生成以上getter與setter的原型架構,隻需要稍作修改就可以直接使用了。