Java - 클래스 배열

컴퓨터/Java

728x90
반응형

클래스 배열

Java 언어를 이용한 객체지향형 프로그래밍을 하기 위해서는 클래스를 정의하고 클래스를 각각의 객체의 형태(인스턴스화)하여 사용을 합니다.  만약 프로그래밍을 하는 도중 사람이라는 개념의 클래스를 정의하고 10명의 사람을 제어하는 프로그래밍을 한다고 가정한다면, 각각의 생성된 인스턴스를 한 번에 묶어서 관리해야만 프로그래밍적으로 용의 할 것입니다. 이러한 방법의 운영을 하기 위해서 클래스 배열의 형태로 사용하게 됩니다.

 

class Human {
	private String name;
	private int age;
}


public class Test {

	public static void main(String[] args) {
		Human h1 = new Human();
		Human h2 = new Human();
		Human h3 = new Human();
		Human h4 = new Human();
		Human h5 = new Human();
		.......
	}
}

 

클래스 배열 선언하기 

위와 같이 각각 인스턴스 변수를 생성하고 다룬다면 프로그래밍언어를 작성하면서 많은 수의 인스턴스 변수를 한 번에 제어하기에는 쉽지 않습니다. 그래서 인스턴스 변수를 생성할 공간을 먼저 만들고 그 각각의 공간에 인스턴스를 생성하는 방법을 사용합니다.

 

public class Test {
	public static void main(String[] args) {
		Human[] human = new Human[10];
	}
}

위의 소스코드 처럼 Human 클래스를 담을 수 있는 공간 10개를 생성했습니다.

여기서 기억해야 할 점은 Human의 형태를 담을 수 있는 공간을 생성한 것이지 실제 인스턴스화 된 변수가 삽입되지 않았습니다.  이해하기 쉽게 아래와 같은 형태를 비교해 보시면 좋을 것 같습니다.

 

1 기본 class 변수 생성 

public class Test {
	public static void main(String[] args) {
		Human human ;
	}
}

위와 같은 구조의 형태는 Human 클래스를 담을 수 있는 공간 1개를 선언한 human 변수입니다.

1개이기 때문에 공간의 크기를 생성할 필요가 없습니다.

 

이처럼 배열의 공간만을 선언을 했기 때문에 각각의 클래스 배열 인덱스에 접근하여 하나씩 인스턴스를 생성해 주어야만 합니다.

public class Test {

	public static void main(String[] args) {

		Human[] human = new Human[10];
		
		human[1] = new Human();
		human[2] = new Human();
		human[3] = new Human();
		human[4] = new Human();
		........
	}
}

위와 같이 클래스를 담을 배열(공간을) 먼저 생성한 후 각각의 배열의 위치에 인스턴스를 생성해 주어야만 비로소 각각의 독립된 객체화된 클래스를 만들어 사용할 수 있습니다. 

 

반복문을 사용한 인스턴스 생성

반복문과 함께 응용한다면 아래와 같이 사용할 수도 있습니다.

public class Test {
	public static void main(String[] args) {
		Human[] human = new Human[10];
		for(int i = 0 ; i < human.length ;i++) {
			human[i] = new Human();
		}
	}
}

 

이처럼 클래스들을 한곳에 묶을 수 있는 클래스 배열의 형태를 사용한다면 조금 더 효율적인 프로그래밍이 가능합니다.

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :