3:1:15 ~ 3:1:16 

공부할때 바로 복습을 한 학습정보가 장기기억으로 남을 가능성이 높다고 합니다^^

채계적으로 속도를 붙여서 공부한것을 복습하는 방법을 연구해보는것이 좋겠습니다.

학습할떄마다 속도가 붙지 않는 원인이 있습니다. 바로 언제나 궁금증이 폭발 한다는 점인데요.

이번 코드에서는 문법적인 부분은 이해하지만 구조적으로 왜 인터페이스와 클레스가 쓰일수 밖에 없었는지 같은 점들이 많은 궁금증을 갖게 합니다.

개인적으로 아직 소계되지 않은 내용에 대해서는 차근 차근 나중에 공부할수 있는 기회가 있다고 자신의 호기심을 다독이며 진행 해야 할것 같습니다 ^^

오늘부터 새로 도입한 방법은

키보드를 타이핑한 수와 . 시간을 재서 평균을 내는것입니다.


이론 정리

 

14 챕터 library코드 구조 해석.

현제 듣고 있는 강의의 class shelf에서 ArrayList A를 protected로 만드는데.

get set을 사용하지 않고 접근할수 있는것은 좋은데. 정보 은닉도 되면서 get set을 사용하지 않아도 된다면 매우 편하게 코딩할수 있겠다. 정확하진 않지만 더 궁금증을 해결하는데 시간을 낭비하지말고 우선은 이 코드의 형태로 코드작성법을 고착 시키고 진도를 나간후 천천히 공부할 기회가 찾아 올것을 기다리자.

  • BookShelf 는 인터페이스와 클레스를 상속받아서. 인스턴스로 객체 가 만들어 지면서 사용된다.
  • ArrayList의 자료가 비어있을때 remove를 하면 에러가 발생한다.
  • 메소드에 하위에서 구현될 메계변수의 데이터 타입까지 구현해야 한다.
  • 객체의 작동을 태스트 할때 객태TEST로 명명한다.
  • Shelf와 BookShelf의 관계에 대해서는 아직 잘 모르겠다. 그냥 BookShelf만 만들고 Queue를 상속받으면 해결되는것이지만 문법을 공부하기 위한 코드라고 이해하고 의미부여를 하지 말고 넘어가자.
  • 자료 구조 에서 큐로 만들어진 자료가 몇개가 있는지 나타낼때 큐가 몇개가 있다는 표현을 사용한다.
  • 왜 상위 인터페이스인 Queue 타입 참조변수에 BookShelf를 넣는걸까?
  • 아무튼 큐 타입 이니까 큐 타입으로 업스케일을 하는데. 질문이 가능하다면 당장 물어보고 싶지만. 이 교육 플랫폼에서 감히 학생이 교사에게 질문을 할수 있는 무료 강의에도 있는 기능이 없기 때문에 다음에 알수 있는 기회가 오기를 기다려야 겠다.

# 챕터 14 도서관 코드 암기용 복습

package TEST2;

public class BookShelf extends Shelf implements Queue {
	
	@Override
	public void enQueue(String BookName) {
		shelf.add(BookName);
	}

	@Override
	public String deQueue() {
		return shelf.remove(0);
	}
	
}
package TEST2;

public class BookShelfTest {
	public static void main(String[] args) {
		BookShelf bookshelf = new BookShelf();
		bookshelf.enQueue("백귀야행");
		bookshelf.enQueue("인간의증명");
		bookshelf.enQueue("우부메의 여름");
		bookshelf.enQueue("황혼색의 명영사");
		System.out.println(bookshelf.getCount());
		System.out.println(bookshelf.deQueue());
		System.out.println(bookshelf.deQueue());
		System.out.println(bookshelf.deQueue());
		System.out.println(bookshelf.deQueue());
		
	}
}
package TEST2;

public interface Queue {
	void enQueue(String Bookname);
	String deQueue();
}
package TEST2;

import java.util.ArrayList;

public class Shelf {
	protected ArrayList<String> shelf ;
	Shelf(){
		shelf = new ArrayList<String>();
	}
	int getCount(){
		return shelf.size();
	}
	ArrayList<String> getshelf() {
		return shelf;
	}
}

16 복습해 봅시다.

추상 클레스와 틈플릿 메소드의 활용

package TEST3;

public class SuperLevel extends PlayerLevel {

	@Override
	void run() {
		System.out.println("엄청 빠르게 달립니다.");
		
	}

	@Override
	void jump() {
		System.out.println("아주 높이jump 합니다.");
		
	}

	@Override
	void turn() {
		System.out.println("turn 합니다.");
		
	}

	@Override
	void showLevelMessage() {
		System.out.println("고급자 레벨 입니다.");
		
	}

}
package TEST3;

public class BeginnerLevel extends PlayerLevel {

	@Override
	void run() {
		System.out.println("천천히 달립니다.");
		
	}

	@Override
	void jump() {
			System.out.println("Jump 하지 못합니다.");
	}

	@Override
	void turn() {
		System.out.println("Turn 하지 못합니다.");
		
	}

	@Override
	void showLevelMessage() {
		System.out.println("초급자 레벨 입니다.");
		
	}

}
package TEST3;

public class MainBoard {
	public static void main(String[] args) {
		Player player = new Player();
		player.play(1);
		
		AdvancedLevel aLevel = new AdvancedLevel();
		player.upgradeLevel(aLevel);
		player.play(2);
		
		SuperLevel sLevel = new SuperLevel();
		player.upgradeLevel(sLevel);
		player.play(3);
	}
}
package TEST3;

public class Player {
	private PlayerLevel levelB;
	Player(){
		levelB = new BeginnerLevel();
		levelB.showLevelMessage();
	}
	public PlayerLevel getLevel(){
		return levelB;
	}
	public void upgradeLevel(PlayerLevel level){
		this.levelB = level;
		level.showLevelMessage();
	}
	public void play(int level) {
		levelB.go(level);
	};
}
package TEST3;

public abstract class PlayerLevel {

	abstract void run();
	abstract void jump();
	abstract void turn();
	abstract void showLevelMessage();
	
	
	
	
	final void go(int level) {	
		run();
		for (int i = 0; i < level; i++) {
			jump();
		}
		turn();
	}
	
}
package TEST3;

public class SuperLevel extends PlayerLevel {

	@Override
	void run() {
		System.out.println("엄청 빠르게 달립니다.");
		
	}

	@Override
	void jump() {
		System.out.println("아주 높이jump 합니다.");
		
	}

	@Override
	void turn() {
		System.out.println("turn 합니다.");
		
	}

	@Override
	void showLevelMessage() {
		System.out.println("고급자 레벨 입니다.");
		
	}

}

복습 & 실무적인 사용방법


전문 용어


 

에러 메세지


캠 스터디

 


공부 모임

1) 카카오톡 오픈 채팅방

  - 모르는것을 질문하거나

  - 이해가 가지 않는 부분을 다른 분들의 블로그에서 참고하기 용도

2) 구루미 온라인 독서실

  - 학습 시간을 관리 하거나 경쟁 하는 용도 

 

온라인 강의 주소

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

 

+ Recent posts