반응형



혼공자바 4주차 : 550페이지, 539페이지 문제풀이




4주차

12장

550쪽 [직접 해보는 손코딩] 코딩 과정 및 실행 결과 인증샷

539쪽 2번 문제 풀이


혼공자바(혼자공부하는 자바) 4주차 미션과, 

추가미션은 교재의 550 페이지와, 539 페이지에 있는, 

소스들을 직접 실행해보고 빠진 부분은 채우는 문제네요.



이제 혼공자바 학습도 이제 2주 남았네요.

마지막 2주도 마무리 잘해서 완료 하겠습니다.



먼저 직접 손코딩 하는 과정에 대해서는, 

혼공자바 교재의 1장에서 이미 설명되어 있는대로, 

진행하면 되는데요, 







먼저 Java Project 를 교재와 마찬가지로, 

'chap12' 라고 생성을 해준후, 


Java Package를 'sec02.exam05' 라고 만들어 줍니다.

섹션 2번의 5번째 예제라는 뜻이죠.






이제 작성을 하고자 하는 자바코들 생성해서 작성하시면 됩니다.







혼공자바 교재 550페이지 소스코드와 실행 화면 입니다.

소스코드는 아래에 적어 봅니다.





AutoSaveThread.java

package sec02.exam05;

public class AutoSaveThread extends Thread {
	public void save() {
		System.out.println("작업 내용을 저장함.");
	}
	
	@Override
	public void run() {
		while(true) {
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				break;
			}
			save();
		}
	}
}



DaemonExample.java

package sec02.exam05; public class DaemonExample { public static void main(String[] args) { AutoSaveThread autoSaveThread = new AutoSaveThread(); autoSaveThread.setDaemon(true); autoSaveThread.start(); try { Thread.sleep(3000); } catch (InterruptedException e) { } System.out.println("메인 스레드 종료"); } }







추가미션인, 539 페이지의 문제의 정답은 

'new MusicRunnable(), extends Thread, implements Runnable' 입니다.


소스코드는 마찬가지로 아래에 적어 봅니다.






ThreadExample.java

package sec01.verify.exam02;

public class ThreadExample {
	public static void main(String[] args) {
		Thread thread1 = new MovieThread();
		thread1.start();
		
		Thread thread2 = new Thread(new MusicRunnable());
		thread2.start();
	}
}



MovieThread.java

package sec01.verify.exam02;

public class MovieThread extends Thread {
	@Override
	public void run() {
		for(int i=0; i<3; i++) {
			System.out.println("동영상을 재생합니다.");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
			}
		}
	}
}



MusicRunnable.java

package sec01.verify.exam02;

public class MusicRunnable implements Runnable {
	@Override
	public void run() {
		for(int i=0; i<3; i++) {
			System.out.println("음악을 재생합니다.");
			try {
				Thread.sleep(1000);
			} catch (InterruptedEception e) {
			}
		}
	}
}



반응형

+ Recent posts