針對多個對象有共同的這樣的成員變量值的時候,Java就提供了一個關鍵字來修飾,
Static的特點
可以修飾成員變量,還可以修飾成員方法
1.隨着類的加載而加載
2. 優先於對象存在
3. 被類的所有對象共享
什麼時候使用?
如果某個成員變量是被所有對象共享的,那麼它就應該定義爲靜態的
4. 可以通過類名調用
其實它本身可以通過對象名調用,靜態修飾的內容一般我們稱其爲:與類相關的,類成員
注意事項:
1 在靜態方法中是沒有this關鍵字的,即就是靜態是隨着類的加載而加載,this是隨着對象的創建而存在。靜態比對象先存在
2. 靜態方法
只能訪問靜態的成員變量和靜態的成員方法
靜態方法:
成員變量:只能訪問靜態變量;
成員方法:只能訪問靜態成員方法;
非靜態方法:
成員變量:可以是靜態的,也可以是非靜態的;
成員方法:可以是靜態的成員方法,也可以是非靜態的成員方法.
class Person{
String name;
int age;
//String country;
static String country;
public Person() {
}
public Person(String name,int age) {
this.name=name;
this.age=age;
}
public Person(String name,int age,String country) {
this.name=name;
this.age=age;
this.country=country;
}
public void show() {
System.out.println("姓名:"+name+"年齡:"+age+"國家:"+country);
}
}
public class Test {
public static void main(String[] args) {
Person p=new Person("yang",20,"中國");
p.show();
Person p1=new Person("liu",23);
p1.show();
Person p2=new Person("ang",22);
p2.show();
}
}
修改之後:
Main方法的格式詳解
public static void main(String[] args)
public:公共的,訪問權限最大,
static: 靜態的,不需要創建對象,通過類名就可以,方便jvm調用
void:方法的返回值是返回給調用者,而main方法是被jvm 調用,
你返回內容給jvm沒有意義
Main:是一個常見的方法入口,
String[ ] args:這是一個字符串數組,那麼值去哪裏了?
早期爲了接收鍵盤錄入的數據
格式是;java MainDemo hello worid java
public static void main(String[] args) {
System.out.println(args);
System.out.println(args.length);
}
}