staticstatic修饰的成员方法非static修饰的成员方法方法创建时的选择static访问注意事项
static
修饰静态成员变量,属于类的,只存在一个。
加载类时会在堆中加载一个静态成员变量。
访问方法
对象命.静态成员变量名
类名.静态成员变量名 (推荐)
非static修饰的变量,称为实例成员变量。
对象名.实例成员变量</pre>
实列成员变量属于对象。
static修饰的变量属于整个类。
static修饰的成员方法
静态成员方法,属于类。
同一个类中调用静态方法类名可以省略。
static 方法无法直接访问实例变量(因为static 方法是属于类的,所以可以在未创建对象时调用,为了保证是有意义的所以只能访问同样属于类的数据),但是可以通过参数列表将实例变量传入到 static 方法中。
public static void main(String[] args) {
int a = 9;
int b = 10;
int c = max(a , b);
System.out.println(c);
}
public static int max (int a ,int b){
return a > b ? a : b;
}
非static修饰的成员方法
实例方法属于对象,引用需要用对象名。只能用对象触发访问。
非 static 的成员方法无法直接在 main 中调用,必须存在对象才能够使用实例方法。
非 static 方法无法直直接访问 static 方法中的数据(方法与方法之间的数据是无法互相访问的吧),但可以访问类中的数据。
public class Main2 {
static int aa = 10;
public void aaa(){
aa++;
}
public static void main(String[] args) {
int a = 9;
int b = 10;
int c = max(a , b);
System.out.println(c);
Main2 j = new Main2();
j.aaa();
System.out.println(aa);
}
public static int max (int a ,int b){
return a > b ? a : b;
}
}
方法创建时的选择
该方法时成员对象的行为,需要访问对象的数据。声明为实例方法。
该方法通用的不需要访问成员变量,或者为了方便访问,声明为静态方法。
static访问注意事项
静态方法只能访问静态的成员,不能直接访问实例成员。
实例方法可以访问静态成员,也可以访问实例成员。
静态方法中是不能出现 this 关键字。
this 代表当前对象