[java] 엄마도 이해하는 자바 기본 6일차 (2)

2013. 2. 19. 17:08Information Technology/Java

□ Object Serialization (객체직렬화)

 - 객체를 메모리나 저장매체 등에 저장하거나 stream을 통해 전송하기 위한 형태로 만들어 주는 작업



□ 최종실습 문제 



[ Class Design ]






1.

- MP3Player 클래스 : 슈퍼클래스

- IPod, IRiver : 서브클래스

- MP3File 클래스


2. IUser 메인 클래스를 이용하여 실습을 진행한다.


3. 

1) IPod 생성하기

 - Ipode의 getModelInfo() 호출


2) IRiver 생성하기

 - IRiver의 getModelInfo() 호출


3) IPod에 음악 3곡 담기

PLAYLIST 확인 (노래제목 - 가수 - 파일사이즈)

(addList를 써서)

(add되어 있는게 잘 되어 있는지 확인할것 for문써서, getplayList[arrayList를 알아 내는것]


4) IRiver에 음악 3곡 담기

 - PLAYLIST 확인 (노래제목 - 가수 - 파일사이즈)


5) IPod의 모든 음악 삭제


6) IPod에 음악 3곡 담기

 play() 호출해서 playlist의 모든 곡에 대해 화면에 다음과 같은 메시지 출력

 싸이의 강남스타일 플레이 중입니다....

 버스커버스커의 여수밤바다 플레이 중입니다.....

 .....(메시지 출력 사이 사이 1초 간 정지) , sleep 쓸것


7) IRiver의 두번째 음악 삭제

 PLAYLIST 확인 (노래제목 - 가수 - 파일사이즈)


8) IPod, IRiver의 stop() 호출해서 정지 메시지 출력 : player를 멈춥니다! 

 => system.out.println



□ 소스코드 (답안)

package asianaidt.design;

import java.util.ArrayList;

public abstract class MP3Player {
	private ArrayList playList;
	// public int result;
	private int maxSize; 
	
	public MP3Player(int maxSize){
		playList = new ArrayList();
		this.maxSize = maxSize;
	}
	
	public void addList(MP3File file){
		if(file.getSize() > maxSize){
			System.out.println("사이즈가 큽니다");
		}
		else{
			maxSize = maxSize - file.getSize();
			playList.add(file);
			
		}
	}
	
	public void deleteList(int index){
		playList.remove(index);
		maxSize = maxSize + index;
	}
	
	public void deleteAll(){
		playList.clear();
	}
	
	public ArrayList getPlayList(){
		return playList;
	}
	
	public void play(){
		// System.out.println("싸이의 강남스타일 플레이 중입니다.....");
		// System.out.println("버스커버스커의 여수밤바다 플레이 중입니다......");
		
	}
	
	public void stop(){
		System.out.println("player를 멈춥니다! ");
		
	}
	
	public void getSize(){
		System.out.println("max 사이즈 입니다"+maxSize);
	}
	
	public abstract String getModelInfo();
			
}


package asianaidt.design;

public class IPod extends MP3Player {
	private int locCode;

	public IPod(int maxSize, int locCode) {
		super(maxSize);
		this.locCode = locCode;
	}
	
	public int getLocCode(){
		return 112233;
	}
	
	public String getModelInfo(){
		return "IPod";
	}
	
}

package asianaidt.design;

public class IRiver extends MP3Player{
	private String serialNum;
	
	public IRiver(int maxSize, String serialNum){
		super(maxSize);
		this.serialNum = serialNum;
	}
	
	public String getSerialNum(){
		return serialNum;
	}

	public String getModelInfo(){
		return "아이리버"+serialNum;
	}
	
}


package asianaidt.design;

public class MP3File {
	private String title;
	private String singer;
	private int size;
	
	public MP3File(String title, String singer, int size) {
		super();
		this.title = title;
		this.singer = singer;
		this.size = size;
	}

	public String getTitle() {
		return title;
	}

	public String getSinger() {
		return singer;
	}

	public int getSize() {
		return size;
	}
}


package asianaidt.design;

public class IUser extends Thread {

	public static void main(String[] args) throws InterruptedException {
		Thread t = new Thread();

		IPod pod = new IPod(1000, 77);
		System.out.println(pod.getModelInfo());

		IRiver river = new IRiver(1000, "88");
		System.out.println(river.getModelInfo());

		MP3File mpFile1 = new MP3File("나나나", "유승준", 192);
		MP3File mpFile2 = new MP3File("열정", "유승준", 320);
		MP3File mpFile3 = new MP3File("가위", "유승준", 128);

		pod.addList(mpFile1);
		pod.addList(mpFile2);
		pod.addList(mpFile3);

		for (int i = 0; i < pod.getPlayList().size(); i++) {
			System.out.println(pod.getPlayList().get(i).getSinger() + ", "
					+ pod.getPlayList().get(i).getTitle() + " "
					+ pod.getPlayList().get(i).getSize());
		}

		river.addList(new MP3File("말리꽃", "이승철", 192));
		river.addList(new MP3File("언제나", "허각", 192));
		river.addList(new MP3File("고해", "임재범", 192));

		for (int i = 0; i < river.getPlayList().size(); i++) {
			System.out.println(river.getPlayList().get(i).getSinger() + ", "
					+ river.getPlayList().get(i).getTitle()
					+ river.getPlayList().get(i).getSize());
		}

		pod.deleteAll();

		/*
		 * for (int i = 0; i < pod.getPlayList().size(); i++) {
		 * System.out.println(pod.getPlayList().get(i).getSinger() + ", " +
		 * pod.getPlayList().get(i).getTitle()); }
		 */

		pod.addList(new MP3File("잠시만 안녕", "MC the max", 192));
		pod.addList(new MP3File("행복하지 말아요", "MC the max", 192));
		pod.addList(new MP3File("사랑의시", "MC the max", 192));

		for (int i = 0; i < pod.getPlayList().size(); i++) {
			System.out.println(pod.getPlayList().get(i).getSinger() + ", "
					+ pod.getPlayList().get(i).getTitle()
					+ pod.getPlayList().get(i).getSize() + " 플레이 중입니다");

			t.sleep(1000);
		}

		river.deleteList(1);
		for (int i = 0; i < river.getPlayList().size(); i++) {
			System.out.println(river.getPlayList().get(i).getSinger() + ", "
					+ river.getPlayList().get(i).getTitle()
					+ river.getPlayList().get(i).getSize());
		}

		pod.stop();
		river.stop();

		pod.getSize();
		river.getSize();
	}
}

IPod.java

IRiver.java

IUser.java

MP3File.java

MP3Player.java