자바 정적이란 무엇입니까 정적 변수, 정적 메소드, 정적 초기화 블록을 포함하여, 다음은 static에 대한 자세한 설명입니다. (추천 튜토리얼:
java tutorial모두가 알고 있습니다. 클래스를 기반으로 해당 클래스의 여러 개체를 만들 수 있습니다. 각 개체에는 고유한 멤버가 있으며 서로 독립적입니다. 그러나 때로는 이 클래스의 모든 객체가 동일한 멤버를 공유하는 것을 선호할 때도 있습니다. 이것은 정적이 작용하는 때입니다!
Java에서 static으로 수정되는 멤버를 정적 멤버 또는 클래스 멤버라고 합니다. 이는 객체가 아닌 전체 클래스에 속합니다. 즉, 클래스의 모든 객체가 공유합니다.
정적 멤버는 클래스 이름을 사용하여 직접 액세스할 수도 있고, 개체 이름을 사용하여 액세스할 수도 있습니다. 물론 역할의 특수성을 고려하여
정적을 사용하여 변수, 메소드 및 코드 블록에 액세스하려면 클래스 이름을 사용하는 것이 좋습니다.
public class Test1 { // static修饰的变量为静态变量,所有类的对象共享hobby static String hobby = "Tedu"; public static void main(String[] args) { // 静态变量可以直接使用类名来访问,无需创建对象 System.out.println("通过类名访问hobby:" + Test1.hobby); // 创建类的对象 Test1 t1 = new Test1(); // 使用对象名访问静态变量 System.out.println("使用对象名访hobby:" + t1.hobby); // 使用对象名的形式修改静态变量的值 t1.hobby = "cjj"; // 再次使用类名访问静态白变量,值已经被修改 System.out.println("通过类名访问hobby:" + Test1.hobby); } }
실행 결과:
通过类名访问hobby:Tedu 使用对象名访hobby:Tedu 通过类名访问hobby:cjj
참고:
Static 멤버는 시스템이 처음으로 이 클래스를 사용할 때, 할당된 메모리 공간은 클래스가 언로드될 때까지 재활용되지 않습니다!
2. 정적 변수가 사용하는 정적 메서드정적 변수와 마찬가지로 정적 메서드 또는 클래스 메서드라는 수정된 정적 메서드를 사용할 수도 있습니다. 사실 우리가 이전에 작성한 주요 메소드는 정적 메소드입니다
public class Test01 { //使用static关键字声明静态方法 public static void print() { System.out.println("欢迎你:Cjj!"); } public static void main(String[] args) { //直接使用类名调用静态方法 Test01.print(); //也可以通过对象名调用,当然更推荐使用类名调用 Test01 t1 = new Test01(); t1.print(); } }
코드 복사
欢迎你:Cjj! 欢迎你:Cjj!
참고:
# 🎜🎜#1 정적 메서드는 동일한 클래스의 정적 멤버를 직접 호출할 수 있지만 비정적 멤버는 직접 호출할 수 없습니다. 예: 정적 메서드에서 비정적 변수를 호출하려는 경우 클래스의 개체를 만든 다음 개체를 통해 비정적 변수에 액세스할 수 있습니다. 예: 2. 일반 멤버 메서드에서는 비정적 변수와 동일한 유형의 정적 변수에 직접 액세스할 수 있습니다(예: 3). 정적 메서드에서는 변수를 직접 호출할 수 없습니다. 정적 메서드에서는 개체가 비정적 메서드에 액세스해야 합니다. 예:public class Test01 { String name = "Cjj"; //静态成员变量 static String hobby = "study"; //非静态成员变量 //普通成员方法 public void print1() { System.out.println("普通成员方法~~~"); } //静态成员方法 public static void print2() { System.out.println("静态成员方法~~~"); } public static void main(String[] args) { //普通成员方法必须通过对象来调用 Test01 t1 = new Test01(); t1.print1(); //可以直接调用静态方法 print2(); } }
3. static 정적 초기화 블록 사용
Java에서는 초기화 블록을 통해 데이터를 할당할 수 있습니다. 예:public class Test02 { String name; // 定义一个成员变量 //通过初始化块为成员变量赋值 { name = "cjj"; } }
public class Test02 { int num1; int num2; static int num3; public Test02() {// 构造方法 num1 = 11; System.out.println("通过构造方法为变量num1赋值"); } { // 初始化块 num2 = 22; System.out.println("通过初始化块为变量num2赋值"); } static {// 静态初始化块 num3 = 33; System.out.println("通过静态初始化块为静态变量num3赋值"); } public static void main(String[] args) { Test02 t1 = new Test02(); //创建对象 System.out.println("num1:" + t1.num1); System.out.println("num2:" + t1.num2); System.out.println("num3:" + num3); } }
通过静态初始化块为静态变量num3赋值 通过初始化块为变量num2赋值 通过构造方法为变量num1赋值 num1:11 num2:22 num3:33
위 내용은 자바 정적이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!