Java 靜態變數、方法等的總結
阿新 • • 發佈:2018-12-23
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);
}
}