Java学习笔记----static关键字

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oampZuo12345/article/details/48877841
  • 静态的特点
  • 静态的内存图
  • 静态的注意事项
  • 静态变量和成员变量的区别
  • main方法

静态的特点

1、可以修饰成员变量和成员方法

2、随着类的加载而加载

3、优先于对象存在

4、被类的所有对象共享(这是我们判断该不该使用静态的依据)

5、通过类名调用(既可以通过对象名调用,也可以通过类名调用,建议通过类名调用)

静态的内存图

静态的内容在方法区的静态区

这里写图片描述

静态的注意事项

1、在静态中没有this对象

2、静态只能访问静态

静态变量和成员变量的区别

1、所属不同

  • 静态变量:属于类,类变量
  • 成员变量:属于对象,对象变量,实例变量

2、内存位置不同

  • 静态变量:方法区的静态区
  • 成员变量:堆内存

3、生命周期不同

  • 静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
  • 成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失

4、调用不同

  • 静态变量:可以通过对象名调用,也可以通过类名调用
  • 成员变量:只能通过对象名调用

main方法

public static void main(String[] args){}

1、public:公共的,访问权限是最大的,由于main方法是被jvm调用,所以访问权限足够大

2、static:静态的,不需要创建对象,通过类名就可以,方便jvm调用

3、void:方法的返回值是返回给调用者,而main方法是被jvm调用,所以返回内容给jvm没有意义

4、main:是一个常见的方法入口

5、String[] args:早期是为了接收键盘录入的数据

在工具类中使用静态方法,将其构造函数私有化,通过类直接调用方法。

class Teacher {
    public int num = 10;
    public static int num2 = 20;

    public void show() {
        System.out.println(num); //隐含的告诉你访问的是成员变量
        System.out.println(this.num); //明确的告诉你访问的是成员变量
        System.out.println(num2);

        //function();
        //function2();
    }

    public static void method() {
        //无法从静态上下文中引用非静态 变量 num
        //System.out.println(num);
        System.out.println(num2);

        //无法从静态上下文中引用非静态 方法 function()
        //function();
        function2();
    }

    public void function() {

    }

    public static void function2() {

    }
}

class TeacherDemo {
    public static void main(String[] args) {
        //创建对象
        Teacher t = new Teacher();
        t.show();
        System.out.println("------------");
        t.method();
    }
}

猜你喜欢

转载自blog.csdn.net/oampZuo12345/article/details/48877841