inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

배열

배열 생성의 세번째 네번째 방법 질문드립니다.

해결된 질문

194

skyjoon2

작성한 질문수 48

0

세번째 방법

 String[] coffees = new String[] {"아메리카노", "카페모카", "라떼","카푸치노"};

 

 

네번째 방법

String[] coffees = {"아메리카노", "카페모카", "라떼","카푸치노"};

 

강의에서 세번재 네번째 배열 선언의 방법이 같다고 하셨는데 new 를 이용하여 배열을 생성한다면 coffees라는 배열의 주소를 생성한다는 개념으로 알고있는데요.

네번째 방법의 경우 new 를 사용하지 않아도 동일하게 객체의 주소가 생성되는것인지요.

 

new의 정확한 이해도가 부족하여 생긴문제같은데 설명해주시면 감사하겠습니다.

객체지향 oop java

답변 1

1

나도코딩

안녕하세요?
다음과 같은 방식으로 하게 되면 길이가 4인 String 배열을 선언(생성)하고 4개의 문자열을 각 인덱스에 넣게 됩니다.

String[] coffees1 = new String[4];
coffees1[0] = "아메리카노";
coffees1[1] = "카페모카";
coffees1[2] = "라떼";
coffees1[3] = "카푸치노";

이때 coffees1 배열은 String 배열이며 String 은 기본형(Primitive)이 아닌 참조형(Reference) 타입이므로, 클래스 객체를 만드는 것처럼 coffees[0] = new String("아메리카노"); 와 같이 해야 하지만 String 은 예외적으로 그냥 큰 따옴표 "아메리카노" 로 작성할 수 있도록 new 부분은 생략 가능합니다. 그리고 각 배열의 요소는 "아메리카노", "카페모카" 와 같은 객체를 직접 저장하는 게 아니라 그 값들이 존재하는 메모리 공간상의 주소를 저장하게 됩니다.

위 배열은 아래와 같이 선언과 동시에 값 초기화를 할 수 있으며, new String[] 부분은 생략할 수 있습니다. 생략하더라도 배열이 생성되는 방식은 동일합니다 😊

String[] coffees3 = new String[] {"아메리카노", "카페모카", "라떼","카푸치노"};
String[] coffees4 = {"아메리카노", "카페모카", "라떼","카푸치노"};

감사합니다.

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

146

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

119

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

72

1

사고력 키우는 법이 어떤게 있나요?

0

94

2

getter setter

0

103

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

80

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

76

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

115

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

117

2

응용이 어렵습니다.

0

207

2

IntelliJ가 보이지 않습니다.

0

187

3

JDK 버전 문의

0

130

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

123

2

Iterator 문의

0

105

1

코드 순서 문의

0

143

1

클래스 메소드

0

150

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

120

2

HashMap

0

81

2