当前位置: 代码迷 >> 综合 >> 【Java】Java基础之Static关键字
  详细解决方案

【Java】Java基础之Static关键字

热度:56   发布时间:2024-02-08 16:25:01.0

概述 

        Static表示静态,用于修饰成员(包括成员变量和成员方法)。将当前类所有对象所共享的变量定义为静态的。

访问方式

两种访问方式:

1)可以使用对象调用:对象.静态成员

2)可以使用类名调用:类名.静态成员

建议:使用类名调用

public  class Person{static string country;
}  public class Test{public static void main(String[] args){//创建对象Person person=new Person();person.country;//或者直接类名.静态成员Person.country;}
}

static成员的访问规则

访问规则:

1)静态只能直接访问静态,不能直接访问非静态

2)非静态可以直接访问静态和非静态

package com.itheima_01;
public class AAA {//静态变量static int a ;//普通变量int b;//静态方法public static void method1(){System.out.println(a);  //静态方法可以访问静态变量System.out.println(b);  //静态方法不可以访问非静态变量method2();              //静态方法可以访问静态方法method3();              //静态方法不可以访问非静态方法}public static void method2(){}//普通方法public void method3(){System.out.println(a);System.out.println(b);method1();method4();}public void method4(){}
}

静态方法的注意事项

1)一旦使用了static关键字,成员变量就不属于自己,而是属于类,只要是本类的对象,都共享同一数据。例如同伴同学的教室是相同的,可以声明为静态的

2)不管是静态变量还是静态方法都推荐使用类名调用

3)静态方法不能直接调用非静态。原因:在内存中,静态内容都是先于非静态内容产生。就是说:后人知道先人,但是先人不知后人【例如我们知道秦始皇,但是秦始皇并不知道我们】(静态总是优先于非静态)

4)静态方法是不属于对象的,而是属于类的。

5)静态方法中不能使用this调用,this是代表当前对象,而静态方法属于类,在类加载之后,对象并不一定会存在,如果使用this调用则会出现错误。

6)静态代码块第一次执行只执行唯一的一次