1. 程式人生 > >Java 靜態變數、方法等的總結

Java 靜態變數、方法等的總結

1. 靜態變數和方法從屬於類,不需要通過物件呼叫,可以直接通過類呼叫

public class Test{
	public static void main(String[] args){
		System.out.println(Student.name);
		System.out.println(Student.getAge());
	}
}

class Student{
	public static String name="郭靖";
	private static int age=23;
	public static String getAge(){
		return
age; } }

2. 靜態變數不能通過this賦值,因為this指的是當前物件,而不是當前類。

public class Test{
	public static void main(String[] args){
	}
}

class Student{
	public static String name="郭靖";
	private static int age=23;
	//正確的姿勢
	public static void setAge(int Age){
		age=Age;//通過引數名和變數名不同賦值
	}
	//錯誤的示範
	public static void setName
(String name){ this.name=name; } }

3. 類中的普通方法可以呼叫靜態方法和普通方法,但靜態方法只能呼叫靜態方法不能呼叫普通方法,問題的關鍵在於靜態發放從屬於類,普通方法從屬於物件。

public class Test{
	public static void main(String[] args){
		Student s1=new Student();
		s1.sayAge();
	}
}

class Student{
	public static String name="郭靖";
	private static int age=23;
public void sayAge(){//普通方法可以呼叫靜態方法 System.out.println(getAge()); } private static int getAge(){ return age; } //錯誤的示範 public static void say(){ sayAge(); } }

4. 類中的普通方法可以呼叫靜態變數和普通變數,但靜態方法只能呼叫靜態變數不能呼叫普通變數。

public class Test{
	public static void main(String[] args){
	}
}

class Student{
	public static String name="郭靖";
	private int age=23;
	
	public void sayName(){//普通方法可以呼叫靜態變數
		System.out.println(name);
	}
	
	//錯誤的示範
	public static void sayAge(){
		System.out.println(age);
	}
}

5. 靜態程式碼塊