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로 주어야 한다.