JAVA-Array (기본형 배열)
2023. 1. 20. 15:44ㆍ코딩일기/JAVA
자바에서 배열 객체를 생성하는 문법을 알아보자!
int[ ] aaa = new int[3];
왜 이런 모양일까?
자바는 int[ ] 객체안에 배열을 멤버로 갖고 있기 때문이다!
위와 같이 선언했을때,
C언어에서는 쓰레기 값을 갖지만 자바에서는 자동으로 0으로(0에 해당하는_double이라면 0.0_) 초기화 된다!
만약, print(aaa) - 를 했다고 해보자. 어떠한 값이 나올까? 바로 주소값이 나온다.
C언어라면 주소값을 보여줬겠지만,
자바에서는 System.out.println( aaa.toString() ) 인 것처럼 자동 .toString() 이 추가된다. 결과는 해쉬코드가 나온다
int aaa[ ] = new int[3];
이렇게 선언도 가능하기는 하다. 그렇지만 aaa가 배열이라고 오해하기 쉽다! aaa는 참조 변수!!!이다!!!!
int[ ] aaa = //까지만 썼다고 가정하자.
나는 배열객체!를 생성하지 않았고 참조변수만 선언한 것이다.
배열이라면 자동으로 갖고 있는 멤버변수인 length
aaa.length 는 참조변수 aaa가 가리키는 int[ ] 객체 안의 배열의 길이를 갖고있다.
// int형 3개짜리 배열객체를 생성
int[] aaa = new int[3]; // 배열의 요소들은 자동 0에 해당하는 값으로 초기화
// 배열요소에 값 대입
aaa[0] = 10;
aaa[1] = 20;
aaa[2] = 30;
// 반복문을 이용하여 배열 요소값 출력
for (int i = 0; i < aaa.length; i++) {
System.out.println(aaa[i]);
}
double[] ggg = new double[] {3.14, 2.48, 7.23};
double[] hhh = ggg; //객체대입X 주소값 복사ㅇ - 하나의 객체를 공유하게 됨
for (int i = 0; i < ggg.length; i++) {
System.out.print(ggg[i] + ", ");
}
System.out.println();
hhh[0] = 1.1;
for (int i = 0; i < ggg.length; i++) {
System.out.print(ggg[i] + ", ");
}
// 배열객체를 copy 해보기 [배열 요소값들을 복사하기]
int[] mmm = new int[] {50, 60, 70};
int[] nnn = new int[mmm.length]; // mmm배열과 같은 개수의 값이 0인 배열객체 생성
for (int i = 0; i < nnn.length; i++) {
nnn[i] = mmm[i];
}
///mmm과 nnn이 참조하는 배열객체는 서로 다른 객체임!
반응형
'코딩일기 > JAVA' 카테고리의 다른 글
JAVA-Array 연습 문제 풀기 (0) | 2023.01.25 |
---|---|
JAVA-Array (참조형 배열) (0) | 2023.01.20 |
JAVA-연습문제_20230119 (0) | 2023.01.19 |
JAVA-String (0) | 2023.01.19 |
JAVA-숫자야구 게임 (0) | 2023.01.18 |