Java

자바 step7 - Array(1)

코딩탕탕 2022. 10. 25. 21:46

 

package test.main;

public class MainClass01 {
	public static void main(String[] args) {
		System.out.println("main 메소드가 시작되었습니다.");
		// int type 5 개를 저장하고 있는 배열
		int[] nums= {10,20,30,40,50};
		// double type 5 개를 저장하고 있는 배열
		double[] nums2= {10.1,10.2,10.3,10.4,10.5};
		// boolean type 5개를 저장하고 있는 배열
		boolean[] truth= {true, false, false, true, true};
		// String type (참조데이터 type) 5 개를 저장하고 있는 배열
		String[] names= {"김구라","해골","원숭이","주뎅이","덩어리"};
		
		// 배열의 각각의 방 참조하기
		int result1=nums[0];//10
		double result2=nums2[1];//10.2
		boolean result3=truth[2];//false
		String result4=names[3];//"주뎅이"
		
		// nums 배열을 복제해서 새로운 배열을 얻어내서 a 에 대입하기
		int[] a=nums.clone();
		// nums 안에 있는 배열의 참조값을 b 에 대입하기
		int[] b=nums;
		
		// 배열의 방의 갯수
		int size=nums.length;
	}
}

변수를 생성할 때, 기본 데이터 타입 옆에 [](대괄호)를 넣으면 Array type으로 반영된다. 값을 여러개 넣을 수 있다. 참조값들은 {}로 감싸야 된다. Array type은 순서가 존재하므로 해당 번호에 있는 값만 따로 호출할 수 있다. 순서는 0 ~ 사용한다.

clone메소드로 배열을 복제할 수 있다. Array 타입이면 참조값을 대입할 수도 있다.

 

 

package test.main;

public class MainClass02 {
	public static void main(String[] args) {
		// 0 으로 초기화 된 방 3개짜리 int[] 객체 만들어서 참조값을 지역 변수 nums 에 담기
		int[] nums={0, 0, 0};
		nums[0]=10;
		nums[1]=20;
		nums[2]=30;
		// 0 으로 초기화된 방 100개짜리 int[] 객체 만들어서 참조값을 지역 변수 nums2 에 담기
		int[] nums2=new int[3];
		nums2[0]=100;
		nums2[1]=200;
		nums2[2]=300;
		// nums2[3]=400; //??? 없는 방번호를 참조하면 Exception 이 발생한다.
		
		System.out.println("마무리 작업을 하고 app 을 종료합니다.");
		
		}
	}
    
    <console>
    마무리 작업을 하고 app 을 종료합니다.

우선 임의의 값 0을 넣고 나중에 해당 순서의 방에 참조값을 넣을 수도 있다.

new int[] 로 해당 변수명의 타입을 Array타입으로 생성할 수도 있다 나중에 값을 넣어주어도 된다. 다만 처음에 생성할 때 몇 개까지 들어가는지 미리 갯수를 주어주어야되고, 그것을 초과하는 방번호를 참조하면 err가 발생한다.

 

 

package test.main;

public class MainClass03 {
	public static void main(String[] args) {
		System.out.println("main 메소드가 시작되었습니다.");
		//String type 을 담을 수 있는 방 3개짜리 빈 배열객체를 만들어서 참조값을 지역변수 names 에 담기
		//String[] names= {null, null, null};
		String[] names=new String[3];
		names[0]="김구라";
		names[1]="해골";
		names[2]="원숭이";
		
		// 반복문 돌면서 배열에 저장된 문자열을 순서대로 콘솔창에 출력하기
		for(int i=0; i<names.length; i++) {
			//i번째 방에 저장된 아이템 참조
			String tmp=names[i];
			//출력
			System.out.println(tmp);
		}
	}
}

<console>
main 메소드가 시작되었습니다.
김구라
해골
원숭이

String type의 Array 타입도 위와 비슷하다.

반복문 for를 돌려서 모든 참조값을 호출 가능하다.

 

Bike class 생성

package test.mapac;

public class Bike {
	//메소드
	public void ride() {
		System.out.println("바이크를 타고 달려요!");
	}
}

 

package test.main;

import test.mapac.Bike;

public class MainClass04 {
	public static void main(String[] args) {
		/*
		 *  1. Bike 객체를 담을 수 있는 방 3개짜리 배열객체를 생성해서 참조값을
		 *     bikes 라는 지역 변수에 담아보세요.
		 *  2. 배열의 각각의 방(0,1,2번) 에 Bike 객체를 생성해서 담아보세요.
		 *  3. 반복문 for 를 이용해서 순서대로 배열의 각각의 방에 있는 Bike 객체의
		 *     ride() 메소드를 호출해보세요.
		 */
		
		//1.
		//Bike[] bikes= {null, null, null};
		Bike[] bikes=new Bike[3];
		
		//2.
		bikes[0]=new Bike();
		bikes[1]=new Bike();
		bikes[2]=new Bike();
		
		//3.
		for(int i=0; i<bikes.length; i++) {
			//i번째 방 참조
			Bike a=bikes[i];
			a.ride();
		}		
	}
}

<console>
바이크를 타고 달려요!
바이크를 타고 달려요!
바이크를 타고 달려요!

Bike class를 상속받아 객체를 생성하였다. 생성할 때 Array타입으로 생성 가능하다.

bike 타입을 반복문 돌리려면 class 타입을 Bike로 주어야 한다.