2013-04-27 2 views
3

배열에 객체를 넣는 것에 대한 구체적인 설명을 줄 수 있습니까?배열에있는 객체의 아이디어 이해

숫자를 배열에 넣은 다음이 숫자를 사용하여 조작, 정렬 또는 다른 기능을 수행 할 수 있음을 알고 있습니다. 그러나 배열의 객체를 사용하여이 작업을 수행하는 방법을 이해하는 데 어려움이 있습니다.

내가 틀렸다면 나를 정정 해주세요. 그러나 객체가 클래스와 같고 클래스가 청사진 인 것처럼 보입니다. 따라서 배열에 다른 객체를 넣을 때 같은 배열에 다른 "청사진"을 두지 않는 것이 맞습니까? 어떻게 작동합니까? 이 일의 유용성은 무엇입니까?

또는 동일한 배열의 개체를 같은 배열의 다른 클래스의 개체로만 배치 할 수 있습니까?

+0

자바에서는 항상 ** 참조 **를 개체에 적용합니다. 참조 자체는 비슷합니다 (C 포인터를 생각해보십시오), 다른 것은 참조되는 오브젝트입니다. – SJuan76

+0

Java에서 객체의 배열은 클래스의 인스턴스에 대한 포인터의 배열입니다. – phil

+0

배열 유형에 따라 배열에 아무 것도 넣을 수 있습니다. int []가 있으면 정수 만 넣을 수 있습니다. Object []가 있으면 Object의 파생 클래스 인스턴스 (모든 Object)를 – NeplatnyUdaj

답변

0

자바에서는 모든 것이 객체입니다 [프리미티브 - 정수, 부동 등 제외]. 짝수 배열은 객체입니다.

우리는 개체를 배열에 넣지 않습니다. 우리는 객체 참조를 배열에 저장합니다. 당신의 객체는 힙에 있고 그 참조는 스택에 있습니다.

배열을 선언하는 동안 우리는 어떤 유형의 객체인지 선언합니다. 내가 형 MyClass에의 객체와 배열을 선언하면

MyClass[] arr = new MyClass[10]; 

는 내 배열에있는 모든 MyClass에의 객체와 MyClass에의 하위 클래스의 객체를 저장할 수 있습니다. 다른 객체를 저장할 수 없으면 컴파일 오류가 발생합니다. 우리가 Object 형식으로 배열을 선언하는 경우

그러나

Object[] obj = new Object[5]; 

그런 다음 우리는 우리의 배열에있는 모든 개체의 refernece를 삽입 할 수 있습니다.

배열에서 객체를 사용하는 이유는 무엇입니까?

MyClass의 개체가 세 개 있다고 가정하고 Java에서 해당 JSP로 전달하려고합니다. 배열을 생성하고 그 안에 세 개의 객체를 모두 저장 한 다음 배열을 JSP로 전달하면됩니다.

+0

나는 본다. 그것은 아주 명확한 설명이었습니다. 답변 해주셔서 감사합니다! – Erebus

0

일반적으로 한 종류의 개체 만 배열에 저장합니다. arrayList 제한 유형을 사용할 수 있습니다.

+0

arrarList oliver

1

클래스는 개체를 만들기위한 템플릿입니다. 클래스는 특정 유형의 객체입니다 (String 유형의 객체는 java.lang.String.class라는 클래스를 사용하여 생성됩니다). 객체에서 getClass()를 호출하여 객체의 클래스를 찾을 수 있습니다. 클래스는 생성에 사용 된 객체와 분리되어 있습니다.

개체 배열에는 개체에 대한 참조가 있습니다. 객체는 메모리의 어딘가에 존재하며 배열에는 포인터가 있습니다. 배열이 정렬되면 코드는 참조를 따라 객체의 데이터를 찾은 다음 다른 배열 요소에 참조를 다시 할당합니다.

또한 Object (Object [])의 배열이 있으면 모든 클래스의 객체를 그 안에 넣을 수 있습니다.

+0

Ah! 그렇게 많은 의미가 있습니다. 통찰력에 감사드립니다. 한 가지 더 명확한 설명입니다. 따라서 동일한 클래스에서 파생 된 유사한 객체 만 배열에 넣을 수 있습니다. 그러나 동일한 클래스의 다른 클래스에서 만들어진 객체를 넣을 수는 없습니까? – Erebus

+0

@Erebus : 배열 유형에 따라 다릅니다. 이것이 Object [] 인 경우 * 아무것도 * 넣을 수 있지만 기본 요소는 넣을 수 있습니다. 물건의 조합을 가질 수 있습니다. 그게 도움이 되니? –

+0

무슨 뜻인지 알 겠어. 도와 주셔서 감사합니다. – Erebus

관련 문제