# 객체 조합하기 #### CODE <a class='btn btn-default' href='/codes/56015'>Link</a> ``` public class TeamTest { public static void main(String[] args) { // 선수 객체 생성 Player kim = new Player("Kim", new int[] { 9, 8, 10 }); Player lee = new Player("Lee", new int[] { 10, 9, 10 }); Player park = new Player("Park", new int[] { 8, 10, 9 }); Player xiao = new Player("Xiao", new int[] { 10, 9, 10 }); Player yu = new Player("Yu", new int[] { 8, 9, 10 }); Player xui = new Player("Xui", new int[] { 8, 9, 9 }); // 객체 배열 만들기 Player[] koreaPlayers = { kim, lee, park }; Player[] chinaPlayers = { xiao, yu, xui }; // 팀 객체 생성 Team korea = new Team("KOREA", koreaPlayers); Team china = new Team("CHINA", chinaPlayers); // 팀 점수 출력 korea.printTeamPoints(); china.printTeamPoints(); } } // 팀 클래스 class Team { // 필드 String nation; // 나라 Player[] players; // 선수들 // 생성자 Team (String str, Player[] arr) { nation = str; players = arr; } // 메소드 void printTeamPoints() { int sum = 0; for (int i = 0; i < players.length; i++) { sum += players[i].totalPoints(); } System.out.printf("%s -> %d points\n", nation, sum); } } // 선수 클래스 class Player { // 필드 String name; // 이름 int[] points; // 득점 현황 // 생성자 Player (String str, int[] arr) { name = str; points = arr; } // 메소드 int totalPoints() { int sum = 0; for (int i = 0; i < points.length; i++) { sum += points[i]; } return sum; } } ``` #### INPUT ``` ``` #### OUPUT ``` KOREA -> 83 points CHINA -> 82 points ``` 선수 객체 생성에서 Player 생성자를 사용하는 부분이요 왜 int[] 앞에 new를 붙여주나요? 배열 생성 방법인 1. 생성과 동시에 초기화 2. 먼저 배열의 크기 설정 후, 인덱스별 값 대입 두 개 합친건가요?
사실 배열 또한 객체입니다. 따라서, 다음과 같은 방식으로 배열(객체)를 만들 수 있습니다. ``` new int[] { 9, 8 , 10 }; ``` PS. 다음의 두 코드는 동일하게 동작합니다. ``` int[] arr1 = { 1, 2, 3 }; int[] arr2 = new int[] { 1, 2, 3 }; ```