Java의 객체 및 객체 참조 인스턴스 분석

이 예제에서는 Java의 객체 및 객체 참조를 설명합니다.여러분에게 참고할 수 있도록 나누어 드리겠습니다.구체적인 분석은 다음과 같다.
Java에서 명사가 자주 같이 나타나는데 그것들이'대상과 대상 인용'이다. 많은 친구들이 Java를 처음 배울 때 이 두 개념을 헷갈릴 수 있다. 그것들이 하나의 일이라고 생각하지만 사실은 그렇지 않다.오늘 우리는 대상과 대상 인용 간의 차이와 관계를 알아보자.
1. 상대란 무엇인가?
자바에서 비교적 유행하는 말이 있는데 이것을'만물개대상'이라고 하는데 이것은 자바 언어 디자인의 초기 이념 중의 하나이다.대상이 무엇인지 이해하려면 클래스와 결합하여 이해해야 한다.다음 구절은 Java 프로그래밍 사상의 원어에서 인용한 것이다.
"통속적으로 말하면 모든 대상은 특정한 클래스(class)의 실례(instance)입니다. 여기서'클래스'는'유형'의 동의어입니다."
이 한 마디로 대상의 본질을 이해할 수 있다. 간단하게 말하면 그것은 바로 유형의 실례이다. 예를 들어 모든 사람을'인류'라고 통칭하는데 여기의'인류'는 하나의 유형(종의 한 유형)이다. 그리고 모든 사람에게 구체적이다. 예를 들어 장삼이라는 사람은 그것이 대상이고'인류'의 실례이다.
2. 객체 참조란 무엇입니까?
우리 먼저 한 마디 봅시다.
프로그래밍 언어마다 데이터 처리 방식이 있습니다. 어떤 때는 프로그래머가 처리할 데이터가 어떤 유형인지 주의해야 합니다. 요소를 직접 조작하거나, 특정 문법에 기반한 간접 표현(예를 들어 C/C++의 지침)으로 대상을 조작해야 합니다. 모든 것이 자바에서 간소화되어 모든 것이 대상으로 간주됩니다. 따라서 우리는 통일된 문법을 사용할 수 있습니다. 모든 것을'대상으로 간주되지만, 조작된 식별자는 실제적으로 하나의 대상을 가리키는'인용'(reference) 이다.  
이 단락은 에서 유래한 것으로 이 단락에서 대상과 대상의 인용이 같은 것이 아니라 완전히 다른 개념임을 알 수 있다.예를 들어, 다음과 같은 행 코드를 사용하여 객체를 만듭니다.

Person person = new Person(" ");
누군가는 이곳의person이 하나의 대상이고 Person류의 실례라고 말할 것이다.
여기의person은 진정한 대상이 아니라 만들어진 대상을 가리키는 인용이라고 할 수도 있다.
도대체 어떤 견해가 맞습니까?우리는 우선 어떤 견해가 옳은지 급하게 고민하지 않고 두 줄의 코드를 다시 본다.

Person person;
person = new Person(" ");
이 두 줄 코드가 실현하는 기능은 위의 한 줄 코드와 완전히 같다.다들 아시다시피 자바에서 new는 더미 위에서 대상을 만드는 데 쓰인다. 만약person이 대상이라면 두 번째 줄은 왜 new를 통해 대상을 만드는가?이를 통해 알 수 있듯이person은 창설된 대상이 아닙니다. 무엇입니까?위에서 말한 바와 같이'조종하는 표지부호는 실제적으로 하나의 대상을 가리키는 인용이다'. 즉person은 하나의 인용이고 Person류를 가리킬 수 있는 대상을 가리키는 인용이다.진정으로 대상을 만드는 문장은 오른쪽의 new Person("장삼")이다.
다시 한 번 예를 들자.

Person person;
person = new Person(" ");
person = new Person(" ");
여기에서 person은 먼저'장삼'이라는 대상을 가리킨 다음에'이사'라는 대상을 가리켰다.즉, Person person, 이 말은 단지 하나의 Person 클래스의 인용을 성명했을 뿐, 어떠한 Person 클래스의 실례를 가리킬 수 있다.이 이치는 아래의 코드와 같다.

int a;
a=2;
a=3;
여기에서 먼저 int 유형의 변수 a를 설명하고, 먼저 a에 대해 2를 부여하고, 뒤에 또 3을 부여한다.즉, int 유형의 변수 a는 그의 값을 2로 할 수도 있고 3으로 할 수도 있다. 합법적인 int 유형의 수치라면 된다.
즉, 하나의 인용은 여러 개의 대상을 가리킬 수 있지만, 하나의 대상은 여러 개의 인용에 의해 가리킬 수 있습니까?답은 당연히 가능하다.
예:

Person person1 = new Person(" ");
Person person2 = person1;

person1과 person2는 모두'장삼'이라는 대상을 가리켰다.
대상과 대상 인용의 차이와 관계에 대해 잠시 이렇게 많이 이야기했으니 관심 있는 친구는 관련 문서와 자료를 찾아볼 수 있다.
본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기