# 객체 배열 만들기 * //생성자 만드는 부분에서 왜 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: 박완규 } ```
# 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이 뼈대코드에 빠져있어야 맞습니다. 미처 확인을 못했네요. 피드백 감사합니다.