文章目录

  • 前言
  • 一、static是什么?
  • 二、static修饰的特点
  • 三、static关键字注意事项
  • 四、代码演示
  • 1.类共享(Student类与Test1Static类不在一起,为了直观代码)
  • 2.static优加载和调用
  • 总结

前言

随着编程语言的不断发展,java学习这门技术也越来越重要,本文就介绍了java学习的基础内容。


一、static是什么?

static称为静态修饰符,它可以修饰类中的成员或者方法。被static修饰的成员称为静态成员,方法称为静态方法。

二、static修饰的特点

1.被类的所有对象共享,是我们判断是否使用静态关键字的条件
2.随着类的加载而加载,优先于对象存在,对象需要类被加载后,才能创建
3.可以通过类名调用(推荐),也可以通过对象名调用

三、static关键字注意事项

1.静态方法只能访问静态的成员
2.非静态方法可以访问静态的成员,也可以访问非静态的成员
3.静态方法中是没有this关键字 (从static修饰的特点来看,static是和类一起加载到虚拟机的,在对象之前,而this关键字是创建对象之后才可以使用,有着前后顺序)

四、代码演示

1.类共享(Student类与Test1Static类不在一起,为了直观代码)

代码如下(示例):

public class Student {
    String name;
    int age;
    static String school;
public void show() {
        System.out.println(name + "..." + age + "..." + school);
    }
}
public class Test1Static {
    /*
        1. 被static修饰的成员, 会被该类的所有对象所[共享]
     */
    public static void main(String[] args) {
        Student stu1 = new Student();
        stu1.name = "张三";
        stu1.age = 23;
        stu1.school = "清华大学";
		stu1.show();
        Student stu2 = new Student();
        stu2.name = "李四";
        stu2.age = 25;
        stu2.show();
    }
}
张三...23...清华大学
李四...25...清华大学
我们可以看到此时没有对stu2.school进行赋值操作,也输出了“清华大学”
所以被static修饰的school,会被Student这个类的所有对象共享。

2.static优加载和调用

public class Student {
    String name;
    int age;
    static String school;
public void show() {
        System.out.println(name + "..." + age + "..." + school);
    }
}
public class Test1Static {
    /*
        1. 被static修饰的成员, 会被该类的所有对象所[共享]
     */
    public static void main(String[] args) {
    	Student .school = "清华大学";
        Student stu1 = new Student();
        stu1.name = "张三";
        stu1.age = 23;
        //stu1.school = "清华大学";
		stu1.show();
        Student stu2 = new Student();
        stu2.name = "李四";
        stu2.age = 25;
        stu2.show();
    }
}

我们可以很明显的看到school在创建对象之前就可以进行赋值操作了,并且通过了类名.的方式,因为此时对象还没有创建出来,同时也更加推荐这样使用(区分静态成员和实例成员)

总结

以上就是今天要讲的内容,本文仅仅简单介绍了static的使用