정적 키워드의 일부 사용

1. static 키워드는 멤버 변수를 수정합니다.

  멤버 변수가 static 키워드를 사용하면이 변수는 더 이상 객체에 속하지 않고 해당 객체가 속한 클래스에 속하며 여러 객체가 동일한 데이터를 공유합니다.

  엔터티 클래스에 카운터 구현

public class Student {
    
    
    private Integer stuId;//id,每次new一个实现自增长
    private String stuName;
    private static int idCounter = 0;//计数器,多个对象共享同一份数据

    public Student() {
    
    
        this.stuId = ++idCounter;//每次调用构造方法,实现+1
    }

    public Student(String stuName) {
    
    
        this.stuId = ++idCounter;//每次调用构造方法,实现+1
        this.stuName = stuName;
    }

    public static int getIdCounter() {
    
    
        return idCounter;
    }

    public static void setIdCounter(int idCounter) {
    
    
        Student.idCounter = idCounter;
    }

    public Integer getStuId() {
    
    
        return stuId;
    }

    public void setStuId(Integer stuId) {
    
    
        this.stuId = stuId;
    }

    public String getStuName() {
    
    
        return stuName;
    }

    public void setStuName(String stuName) {
    
    
        this.stuName = stuName;
    }

    @Override
    public String toString() {
    
    
        return "Student{" +
                "stuId=" + stuId +
                ", stuName='" + stuName + '\'' +
                '}';
    }
}

테스트 코드
여기에 사진 설명 삽입

둘째, 정적 키워드 수정 멤버 방법

  static 키워드는 멤버 메소드를 수정 한 후 정적 메소드가되며, 정적 메소드는 객체에 속하지 않고 클래스에 속합니다.
  정적 수정 방법이 없으며 사용하기 전에 개체를 만들어야합니다.

1. 정적 메서드, 클래스 이름으로 직접 호출
2.이 클래스의 정적 메서드는 클래스 이름을 생략 할 수 있습니다.

  정적은 비 정적
  메모리에 직접 액세스 할 수 없습니다 . 첫째, 정적 콘텐츠가 있고 비 정적 콘텐츠가 있습니다.
  정적 메서드는이를 사용할 수 없습니다 (현재 객체가 누구에 의해 호출되는지 현재 객체를 나타냄).

암호:


public class MyClass {
    
    
    int num ;
    static  int numStatic;

    public void method(){
    
    
        System.out.println("普通的成员方法");
        System.out.println(num);//成员方法可以访问成员变量
        System.out.println(numStatic);//成员方法可以访问静态变量
    }

    public static void staticMethod(){
    
    
        System.out.println("这是一个静态方法");
//        System.out.println(num); 静态方法不能直接访问成员变量
        System.out.println(numStatic);
    }
}

public class StaticMethod {
    
    
    public static void main(String[] args) {
    
    
        MyClass myClass = new MyClass();
        myClass.method();//通过对象调用成员方法
        MyClass.staticMethod();//通过类名调用
        staticMethod();
    }

    public static void staticMethod(){
    
    
        System.out.println("本类中的静态方法");
    }

}

세, 정적 코드 블록

  이 클래스를 처음 사용하면 정적 코드 블록이 한 번만 실행되고 정적 콘텐츠가 항상 비 정적보다 우선하므로 정적 코드 블록이 생성 메서드보다 먼저 실행됩니다.
  한 번에 정적 멤버 변수에 값을 할당하는 데 사용됩니다.

public class Person {
    
    
    static {
    
    
        System.out.println("静态代码块");
    }

    public Person(){
    
    
        System.out.println("构造方法执行");
    }
}

여기에 사진 설명 삽입

추천

출처blog.csdn.net/zeduo2525/article/details/109284225