static

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 代表当前对象

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容