学习java的static

发布于:2024-05-06 ⋅ 阅读:(27) ⋅ 点赞:(0)

1.static是什么,用来做什么?

static-静态,可以修饰成员变量和成员方法。

2.成员变量按照有无static修饰,分为两种

类变量:有static修饰,属于类,在计算机中,会被类的全部对象所共享。它属于类,与类一起加载一次,在内存中只有一份。

实例变量:无static修饰,对象的变量,属于每个对象。每个对象中都有一份。

如何访问类变量:

推荐使用:类名.类变量

还有一种方法:对象.类变量

如何访问实例变量:

对象.实例变量

3.static修饰成员变量(类变量)的应用场景。

在我们开发的时候,如果遇到某个数据只需要一份,并且希望能够被共享(访问,修改),则该数据可以定义成类变量来记住。

注意:在某一个类中,访问其他类里面的类变量,必须带类名访问

public class student {
    static String name;
     int age;
}
public class demo1 {
    public static void main(String[] args) {
        //类变量的使用
        //推荐使用
        student.name = "张三";
        //对象.类变量(不推荐)
        student s = new student();
        s.name = "李四";

        student student = new student();
        student.name = "王五";

        System.out.println(s.name);
        System.out.println(student.name);

        //实例变量的用法
        s.age=23;
        student.age=25;

        System.out.println(s.age);
        System.out.println(student.age);
    }
}

4.成员方法的分类

类方法:有static修饰的成员方法,属于类。访问方法:推荐使用类名.类方法();不推荐使用对象名.类方法();

实例方法:无static修饰的成员方法,属于对象。访问方法:对象.实例方法();

public class Student {

     public static  void print(){
         System.out.println("hello");
         System.out.println("hello");
     }

    public static void study() {
        System.out.println("study");
        System.out.println("study");
    }
}
public class demo2 {
    public static void main(String[] args) {
        Student student = new Student();
        //类方法的使用
        //推荐使用:类名.方法名()
        Student.study();
        //不推荐使用
        student.study();
        
    }
}

5.类方法的应用场景

类方法最常见的应用场景是用来做工具类。

什么是工具类?

工具类中的方法都是一些类方法,每个方法都是用来完成一个功能,工具类是给开发人员共同使用的。

使用类方法来设计根据类的好处:提高代码的复用,调用方便,提高了开发的效率。

工具类没有创建对象的需求,建议将工具类的构造器进行私有。

为什么不使用实例方法呢?

因为实例方法需要创建对象来调用,会浪费内存。

6.使用static的几点注意事项

1.类方法中可以直接访问类的成员,不可以直接访问实例对象。

2.实例方法既可以直接访问类成员,也可以直接访问实例成员。

3.实例方法中可以直接出现this关键字,类方法中不可以出现this关键字。

7.代码块

静态代码块

格式: static{};

特点:类加载时自动执行,由于类只会加载一次,所以静态代码块叶只会执行一次。

作用:完成类的初始化,例如:对类变量的初始化赋值。

实例代码块

格式:{}

特点:每次创建对象时,执行实例代码块,并在构造器前执行。

作用:和构造器一样,都是用来完成对象的初始化的,例如:对实例变量进行初始化赋值。