객체를 담는 배열은 전과 동일하게 원하는 내용의 class를 구성하고 main class에서 class를 객체화 할 때 하기와 같이한다.
→ 클래스이름 [ ] arr = new 생성자 [300];
생성된 배열에 값을 넣어 주는 방법은 두가지가 있다.
①
arr[0] = new point (); → 우선 해당 배열 방 마다 생성자를 통해 객체를 생성을 해 야 한다.
arr[0] . x = 9; → 배열이름[방번호] . class의 변수값을 직접 넣어 줘도 된다.
arr[0] . y = 7;
②
arr[0] = new point ();
arr[2].setData(12, 22); → 객체가 된 class 안에 미리 만들어 두었던 메소드를 호출 해서 사용 해도 된다.
배열의 메소드 호출은 배열이름 [방 번호] . 메소드 이름 (파라미터 값) 이다.
예제를 통해 자세히 살펴 보자
class point{ // point 라는 이름의 클래스
int x, y ; // int 타입 x, y 를 갖고 있다.
void setData( int arg1, int arg2) {
// setData 라는 이름의 메소드 파라미터 값으로 int arg1 과 int arg2 를 갖는다
x = arg1; // x 에는 arg1 을 할당 해주고
y = arg2; // y 에는 arg2 를 할당 해준다
}
void print() { //얘는 왜 파라미터가 필요 없냐면 그냥 간단하게 멤버변수만 출력 할꺼니까
System.out.println("x : " + x );
System.out.println("y : " + y );
}
}
// 이 밑으로는 메인 클래스
public class 객체를담는배열 {
public static void main(String[] args) {
// TODO Auto-generated method stub
point [] arr = new point[3]; // point 타입의 배열 [ ] 이름이 arr 인 배열 객체 생성
// 방만 만들었게 때문에 방 안에는 point 객체는 없고 모두 초기화 되어 있다.
// 객체를 담는 배열을 구현 하는데는 두가지 방법이 있다.
// 1)
arr[0] = new point(); //값을 저장 하기 전에 객체를 생성해서 방에 넣어 주어야 한다.
// 생성자 point()를 이용해서 arr [0] 번째 방에 값을 지정할 수 있게 생성을 해줌
arr[0].x =1; // 그 0 번째 방에 x에는 1
arr[0].y =2; // 그 0 번째 방에 y에는 2를 넣어준다.
arr[0].print(); //프린트 매서드 호툴 후 프린트 해보기
//2)
arr[1]= new point();
arr[1].setData(11, 21); // setData 메서드를 호출하여 값을 바로 지정 할 수 있음
arr[2] = new point ();
arr[2].x = 9; //직접 적으로 x와 y 에 값을 정해주거나
arr[2].y = 7;
arr[2].setData(12, 22); //만들어 놓은 메소드를 통해 값을 지정
for (int i=0; i<3; i++) { // 모든 값 프린트 하기
System.out.println(arr[i].x);
System.out.println(arr[i].y);
System.out.println();
}
----------------------------------------------------------
//혹은 하기와 같이 해줘도 된다
arr[0] = new point();
arr[1] = new point();
arr[2] = new point(); //객체 생성을 알리고
arr[0].setData(1, 2);
arr[1].setData(11, 21);
arr[2].setData(12, 22); // 해당 객체에 들어갈 내용들을 적는고
for (int i=0; i<3; i++) { // 모든 값 프린트 하기
System.out.println(arr[i].x);
System.out.println(arr[i].y);
System.out.println();
} //전체 출력
'JAVA' 카테고리의 다른 글
[JAVA] 객체지향 - 클래스 (class) (0) | 2023.02.28 |
---|---|
[JAVA] 객체지향 - 객체를 멤버로 갖는 클래스 (포함 관계) (0) | 2023.02.26 |
[JAVA] 객체지향 - VO, DAO, DTO (0) | 2023.02.26 |
[JAVA] 객체지향언어 (0) | 2023.02.26 |
[JAVA] 객체지향 - 다양한 변수들 (0) | 2023.02.26 |