[JAVA] 실습_mp3플레이어 만들기_210626 :: 스마트인재개발원

#스마트인재개발원 #국비지원코딩교육 #취업준비 #자바 #자바 #명품자바 #코드리뷰 그동안 배운 여러 문법을 활용해 mp3플레이어 프로그램을 작성했다.

어떤 절차로 프로그램을 작성해야 하는지 참고하면 좋을 것 같아!

1. 기본적인 틀 설계의 음악 플레이어를 만들기 전에 어떤 것이 필요한지, 그것들이 서로 어떻게 소통하는지 설계해 본다.

실행이 시작되는 Main 메서드 만들기 > Code

MusicPlayerView – while문을 활용하여 [5]종료 버튼이 눌릴 때까지 메뉴 선택을 반복할 수 있도록 함 – if문을 통해 각 메뉴가 선택되었을 때 수행하는 작업을 분류하여 실행하는 프로그램 설계 당시의 MusicPlayerView 클래스는 MusicPlayer 클래스와 소통하도록 설계되었으므로 MusicPlayer 클래스와 소통하는 객체(playerPlayer 객체를 통해 Music Player 클래스에 있는 메서드를 호출하여 사용한다!

새로운 클래스(MusicPlayer)에 메서드를 생성할 때 직접 해당 클래스 화면에 타이핑해도 되지만, Eclipse에서 제공하는 오류 메시지를 활용하면 더 빠르고 오타 없이 메서드를 생성할 수 있다! (오류 메시지의 빨간색 선에 마을스를 맞출 때 표시되는 ‘CreateMethod~’를 누르면 클래스 메서드가 자동으로 생성된다!! >,<)> Console

각 메뉴의 기능을 구현하기 전에 프로그램 종료 입력을 받을 때까지는 메뉴를 계속 선택하도록 반복!

2. 기능별 세부내용 추가(1) 노래 재생 사용자가 1번 메뉴를 선택하여 노래를 재생하고자 할 때 Array List에 노래를 생성한다.초기값을 0으로 설정하고 최초 저장된 노래를 재생한다.또한 사용자에게 현재 재생되고 있는 노래의 제목과 가수명을 출력해준다.> Code

MusicPlayer.java

* 뮤직플레이어 클래스가 생성될 때 노래 목록도 함께 생성되도록 했다.- 노래 목록을 담을 ArrayList를 Music이라는 이름으로 선언하고 ArrayList에 값을 추가할 때 사용한다.add() 메서드를 통해 ArrayList에 노래 정보를 추가한다.- Music PlayerView 클래스에서 1번 메뉴가 선택되어 노래를 재생할 때 ArrayList에 저장된 값을 가져온다.get() 메서드를 통해 노래 정보를 읽는다.

Music.java

노래 정보를 가지고 있는 Music 클래스! 노래 제목과 가수 이름을 외부에서 임의로 접할 수 없도록 private 접근 제한자로 선언하고 외부에서 정보를 가져와야 할 때를 위해 getter 메서드를 생성했다.> Console

– 노래를 재생할 1번 메뉴를 선택했을 때 가장 먼저 저장된 노래가 재생된다. (3) 이전 곡 재생 재생을 눌렀을 때 index 0번에 저장된 노래가 실행된다.이어서 이전 곡을 재생하려고 하면 0번보다 앞에 있는 곡이 없기 때문에 Array List 맨 마지막에 저장된 노래를 실행한다.> Code

index가 0인 상태에서 이전 곡을 실행하도록 명령받으면 Array List 크기보다 한 치수 작은 값을 인덱스에 대입하여 해당 곡을 재생하도록 한다.(index가 0부터 시작되므로 ArrayList의 사이즈보다 한 치수 작은 값이 마지막 곡의 위치를 나타내는 인덱스가 된다.)> Console첫 번째 노래[Butter-BTS]가 실행 중인 상태에서 이전 곡을 재생하라는 명령이 들어오면 마지막 노래[해풍우연-헤이즈]가 실행되는 것을 확인할 수 있다. (4) 다음 곡 재생 > Code이전 곡 재생 알고리즘과 마찬가지로 index 값이 이미 최대 상태에서 다음 곡을 재생하라고 하면 index를 0으로 바꾸어 첫 곡을 재생하도록 한다.> Console이전 곡 재생 알고리즘과 마찬가지로 index 값이 이미 최대 상태에서 다음 곡을 재생하라고 하면 index를 0으로 바꾸어 첫 곡을 재생하도록 한다.> Console3. 프로그램을 돌아보고 프로그램을 짠 뒤 전체적으로 코드를 되돌아봤다.작성한 프로그램에는 해당 메서드마다 사용자가 선택한 노래 정보를 출력하는 부분이 중복되는 것으로 나타났다.이러한 중복을 메소드를 만들어 제거하였다. (*) 중복제거->메소드를 만들어 중복제거굳이 메소드를 만들어 중복을 제거하는 이유는 유지보수의 효율 때문이라고 할 수 있다.예를 들어 앞으로 노래 정보 출력 포맷을 변경하고 싶을 때 통합한 메서드 하나만으로 수정하면 된다, 그런~?!사실 이렇게 정리는 했지만, 아직 내가 이반과 오브젝트가 왔다갔다 하는 부분을 이해했는지 잘 모르겠어 TT 반복 OK!!스마트인재개발원 4차 산업혁명 시대를 선도할 빅데이터, 인공지능, 사물인터넷 전문 ‘0원’ 취업연계 교육기관 www.smhrd.or.kr스마트인재개발원 4차 산업혁명 시대를 선도할 빅데이터, 인공지능, 사물인터넷 전문 ‘0원’ 취업연계 교육기관 www.smhrd.or.kr스마트인재개발원 4차 산업혁명 시대를 선도할 빅데이터, 인공지능, 사물인터넷 전문 ‘0원’ 취업연계 교육기관 www.smhrd.or.kr