1. 정적 변수는 동일한 클래스의 모든 개체에서 공유됩니다.
2.정적 클래스 변수는 클래스가 로드될 때 생성되어 사용됩니다.
정적은 클래스 인스턴스의 끝에 저장됩니다. the heap
3. C 언어 C++과 약간 비슷합니다
package com.demo.static_; import java.sql.SQLOutput; public class childgeme { public static void main(String[] args) { Child ch01=new Child("牛牛牛"); ch01.join(); ch01.count++; Child ch02=new Child("马马马"); ch02.join(); ch02.count++; Child ch03=new Child("猪猪猪"); ch03.join(); ch03.count++; System.out.println("共有"+Child.count+"个小孩加入了游戏"); System.out.println("ch01.count="+ch01.count); System.out.println("ch02.count="+ch02.count); System.out.println("ch03.count="+ch03.count); } } class Child{ private String name; //定义一个变量count,是一个类变量(静态变量) public static int count=0; public Child(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static int getCount() { return count; } public static void setCount(int count) { Child.count = count; } public void join(){ System.out.println(this.name+"加入了游戏"); } }
정적 변수의 접근 권한과 범위는 일반 속성과 동일합니다
package com.demo.static_; import java.sql.SQLOutput; public class visit_Static { public static void main(String[] args) { //1.类名.类变量名 //static类变量在类加载的时候就生成使用 System.out.println("A.name="+A.name); System.out.println("A.getAge()="+A.getAge()); //2.类对象.类变量名 A a=new A(); System.out.println("a.name="+a.name); System.out.println("a.getAge()="+a.getAge()); } } class A{ //类变量 public static String name="Demo龙"; private static int age=99; public static int getAge() { return age; } public static void setAge(int age) { A.age = age; } }
클래스 변수가 private이면 메인 함수에서 접근할 수 없으며 클래스 함수의 도움으로 접근해야 합니다
1. 클래스 메서드를 정적 메서드라고도 합니다
2. 수정자 + 정적 + 데이터 반환 유형() {}
3. 정적+ 액세스 수정자 + 데이터 반환 유형() {}
4. 호출 방법은 클래스 방법과 동일합니다
package com.demo.static_; public class static_method { public static void main(String[] args) { stu a01=new stu("小虎"); //stu.sumfee(); a01.sumfee(150); stu a02=new stu("小龙"); a02.sumfee(250); //stu.sumfee(); stu a03=new stu("小猪"); stu.sumfee(199); //输出当前收到的总学费 stu.showfee(); } } class stu{ private String name;//普通成员 //定义一个静态变量来累计学生的学费 private static double fee=0; public stu(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } //当方法使用了static修饰后,该方法就是静态方法 //静态方法就可以访问静态变量 public static double getFee() { return fee; } public static void setFee(double fee) { stu.fee = fee; } public static void sumfee(double fee){ stu.fee+=fee; } public static void showfee(){ System.out.println("总学费="+stu.fee); } }
detail
1 . 정적 메서드는 정적 멤버에만 액세스할 수 있으며 클래스 메서드에서는 this/super를 사용할 수 없습니다.
2. 비정적 메서드는 정적 멤버와 비정적 멤버 모두에 액세스할 수 있습니다
3.
위 내용은 Java 클래스 변수 및 클래스 메소드 인스턴스 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!