目      录   

1.static静态的,可以修饰成员变量和成员方法.

2.static关键字修饰成员变量

3.静态变量的内存图

4.static关键字修饰成员方法

5.static关键字的特点

6.static的注意事项

7.静态变量与成员变量和成员变量的区别


1.static静态的,可以修饰成员变量和成员方法.

静态修饰的内容一般我们称其为:与类相关的,类成员.所有静态修饰的都是用"类名."去访问的.

2.static关键字修饰成员变量

被static关键字修饰的的变量,可以叫做静态变量,也可以叫做共享变量或者类变量.

此变量为共享变量,可以被该类的各个对象所共享.

public class Person {
    public String name;
    //static 静态的,可以修饰成员变量,成员方法
    //修饰成员变量,此变量为共享变量,可以被该类的多个对象所共享。
    public static String guoji = "中国";      //共享变量

    public static void main(String[] args) {
        //第一个对象
        Person person=new Person();
        person.name="张三";
        System.out.println(person.name+"来自于"+Person.guoji);

        //第二个对象
        Person p1=new Person();
        p1.name="李四";
        System.out.println(p1.name+"来自于"+Person.guoji);
    }

}


//输出结果:张三来自于中国
    //     李四来自于中国 

由上面的代码,我们可以发现一个问题,那就是调用静态变量的时候,是拿类名调用的,并没有拿对象名调用.对于静态变量,用类名调用,不建议用对象名调用.

需要给静态变量设值时:类名.变量名=值; 需要获取静态变量的值时:类名.变量名;

3.静态变量的内存图

(内存图中,jdk1.8版本之前,静态是放在方法区的.1.8版本之后(包含1.8版本),是存储在堆内存的哟!)

4.static关键字修饰成员方法

被static修饰的方法是静态方法,静态方法只能访问静态的方法.如果访问非静态方法就会报错! 

public class Person {
    public String name;
    public static void main(String[] args) {
        Person person=new Person();
        person.name="张三";
        System.out.println(person.name);
        //调用game方法
        game();
    }
    
    public static void game(){
        System.out.println("打游戏!");
    }
}

5.static关键字的特点

  • 随着类的加载而加载(也就是字节码文件加载,那么静态就会加载)优先于对象存在
  • 被该类的所有对象共享
  • 被静态修饰的属于类,推荐使用类名调用(其实它本身也可以通过对象名调用但不推荐!)

6.static的注意事项

  • 在静态方法中是没有this关键字的

    静态是随着类的加载而加载,this是随着对象的创建而存在。(静态比对象先存在。)

  • 静态方法只能访问静态的成员变量和静态的成员方法(静态只能访问静态)

7.静态变量与成员变量和成员变量的区别

这个部分的内容,小编的另一篇文章里有的.了解详情    ---------->   点击这里啦!
        

好啦!这次小编的分享就此而止啦!!!

(小编也在努力学习更多哟!以后会多多分享哒!)

希望对友友们有所帮助!!!!