찾다
JavaJava시작하기Java의 정적 속성과 동적 속성의 차이점

Java의 정적 속성과 동적 속성의 차이점

Nov 29, 2019 pm 02:32 PM
java동적 속성차이점정적 속성

Java의 정적 속성과 동적 속성의 차이점

왜 객체를 생성하지 않고 static을 호출할 수 있나요?

객체가 생성되기 전 모든 정적 속성이나 메소드는 메타데이터 영역에 배치되며 정적 속성이나 메서드는 클래스 이름을 통해 호출할 수 있습니다.

예:

public class Cat{
    public static String name;//静态的,不创建对象都存在
    public String color; //动态的,不创建猫的对象不存在这个属性
}
public class Main{
    public static void main(String[] args){
        Cat c =new Cat();
        c.color = "黑色";
        c.name = "喵喵";
        Cat c1 = new Cat();
        c1.color = "蓝";
        System.out.println(c1.name); //正确 这是因为name是静态属性
    }
}

온라인 교육 비디오 공유: java 교육 비디오

정적 속성의 특징: 이 클래스 아래의 모든 개체는 이 속성을 공유하므로 개체가 생성되지 않은 경우에도 이 속성이 존재하므로 이 속성을 수정할 수 있습니다. 클래스를 통해 수정하면 됩니다. (Cat.name = "小猫")

동적 속성은 생성된 객체에만 존재합니다. 이 속성은 객체가 생성될 때만 존재합니다.

정적 속성과 동적 속성의 차이점:

객체는 스택을 통해 찾을 수 있으므로 메타데이터 영역의 콘텐츠를 호출할 수 있나요? ——예

그러면 힙에 있는 콘텐츠도 클래스를 통해 호출할 수 있나요? ——아니요, 이 과정에는 확실성과 불확실성의 문제가 있기 때문입니다.

클래스를 통해 메타데이터 영역의 콘텐츠를 호출합니다. 개체가 동적이기 때문에 정적 항목을 호출하면 개체가 존재하기 전에 정적 항목이 존재해야 합니다. static , 현재로서는 이 동적 항목이 존재해야 하는지 여부가 확실하지 않습니다.

그래서 동적은 정적을 호출할 수 있지만 정적은 동적을 호출할 수 없습니다.

public class Cat{
    public static String name;//静态的,不创建对象都存在
    public String color; //动态的,不创建猫的对象不存在这个属性
    public Cat(){
        
    }
    public void foo(){
        color = "黑";//正确
        name = "喵喵";//正确,一定可以调用静态的
        
    }
    public static void test(){
        color = "黑"; //错误,静态方法无法调用动态的属性
        name = "小喵";//正确
        foo();//动态的不一定存在
        Cat c = new Cat();
        c.foo(); //这时再能调用
    }
}

더 많은 관련 기사와 튜토리얼을 보려면 다음을 방문하세요. Java 시작하기

위 내용은 Java의 정적 속성과 동적 속성의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.