# 객체 배열 만들기
* //생성자 만드는 부분에서
왜 public Song(String n, String s) {
name = n;
singer = s;
}
이 부분에서 왜 public 을 붙이는지 그리고 public 없이 Song(String n, String s) 이렇게는 표현이 왜 안되는지 또한 궁금합니다.
String.format 파트에서 콜라로 예시를 들었을때, public을 붙이지 않고, Cola(String n, int p) 이런식으로 했었는데 왜 이번에는 public이 붙었는지
궁금합니다.
#### CODE <a class='btn btn-default' href='/codes/38496'>Link</a>
```
public class SongTest {
public static void main(String[] args) {
// 객체 생성
Song s0 = new Song("별헤는 밤", "유재하");
Song s1 = new Song("비상", "임재범");
Song s2 = new Song("비밀", "박완규");
// 객체 배열 생성
Song[] songs = {s0,s1,s2};
// 모든 배열 속 객체 출력
for (int i = 0; i < songs.length; i++) {
/* 2. 객체 정보를 출력하세요. */
System.out.println(songs[i].toStr());
}
}
}
class Song {
// 필드
String name;
String singer;
// 생성자
public Song(String n, String s) {
name = n;
singer = s;
}
// 메소드
String toStr() {
return String.format("Song { name: %s, singer: %s }", name, singer);
}
}
```
#### INPUT
```
```
#### OUPUT
```
Song { name: 별헤는 밤, singer: 유재하 }
Song { name: 비상, singer: 임재범 }
Song { name: 비밀, singer: 박완규 }
```
sehongpark님의 답변
# public을
생략해도 괜찮습니다.
```
class Song {
// 필드
String name;
String singer;
// 생성자
Song(String n, String s) {
name = n;
singer = s;
}
// 메소드
String toStr() {
return String.format("Song { name: %s, singer: %s }", name, singer);
}
}
```
public을 아직 안배웠기 때문에 생략하심이 진행상 맞습니다. 하지만 public을 추가해도 코드 실행에는 차이가 없겠습니다.
## PS
public이 뼈대코드에 빠져있어야 맞습니다. 미처 확인을 못했네요. 피드백 감사합니다.