> Java > java지도 시간 > Java 언어에서 정적 수정자의 기능은 무엇입니까?

Java 언어에서 정적 수정자의 기능은 무엇입니까?

王林
풀어 주다: 2023-04-18 14:38:20
앞으로
1471명이 탐색했습니다.

Java 클래스에서는 static이라고 불리는 static 키워드를 자주 볼 수 있습니다. 정적 한정자는 데이터 멤버와 메서드 멤버를 수정하는 데 사용할 수 있지만 클래스(여기서는 외부 클래스 참조)와 생성자를 수정할 수는 없습니다. 예:

package com.csst.vo;    public class User {          private String name;          private static int count;          public String getName() {                 return name;          }          public void setName(String name) {                 this.name = name;          }                public static int getCount() {                 return count;          }          public static void main(String[] args){                 User user1=new User();                 User user2=new User();                 user1.setName("Rose");                 user2.setName("Kate");                 user1.count=10;                 user2.count=20;                 System.out.println("user1.name:"+user1.getName()+" user2.name:"+user2.getName());                 System.out.println("user1.count:"+User.getCount()+"user2.count:"+user2.count);          }  }
로그인 후 복사

프로그램 실행 결과는 다음과 같습니다.

user1.name:Rose user2.name:Kate   user1.count:20 user2.count:20
로그인 후 복사

user1과 user2의 이름 속성이 서로 다르다는 것을 알 수 있습니다. 이는 user1과 user2가 서로 다른 count 속성을 지정하더라도 각각 개체에 대해 setName을 호출하여 지정됩니다. 값이지만 최종 출력 개수 값은 모두 20입니다. 그 이유는 count는 static으로 수정되지만 name은 count로 수정되지 않기 때문입니다.
static 한정자로 수정되는 데이터 멤버나 메서드 멤버를 정적 멤버라고 하고, static으로 수정하지 않는 클래스 멤버를 인스턴스 멤버라고 합니다. 정적 멤버는 한 번만 초기화되고 모든 개체에서 공유되므로 count는 두 개의 20을 출력합니다. 인스턴스 멤버는 개체가 초기화될 때만 초기화됩니다. 개체가 생성될 때마다 한 번씩 초기화됩니다. name은 user1과 user2가 생성될 때 두 번 초기화되었으므로 최종 출력은 Rose와 Kate입니다.
또한 정적 멤버는 클래스에서 공유되므로 개체뿐만 아니라 클래스 이름으로도 호출할 수 있습니다. 정적 메서드에서는 비정적 멤버를 직접 사용할 수 없습니다. 사용하는 경우 개체를 초기화하고 호출해야 합니다. 위의 예에서 User.java에 다음 코드가 있으면 컴파일 오류가 발생합니다.

public static void test(){          setName("test");   }
로그인 후 복사

다음과 같이 수정할 수 있습니다.

public static void test(){                 User user=new User();                 user.setName("test");   }
로그인 후 복사

위 내용은 Java 언어에서 정적 수정자의 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿