일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 인터페이스
- ocp
- 서블릿
- 코드트리
- 코딩테스트
- java
- 스프링컨테이너
- 백준
- JSON
- 코드트리조별과제
- 스프링
- 프록시
- HttpServletResponse
- 참조변수
- fielderror
- 오버라이딩
- 티스토리챌린지
- objecterror
- html form
- 다형성
- http 메시지 컨버터
- equals()
- 싱글톤
- 의존관계
- 오블완
- DI
- 테스트코드
- 김영한
- @configuration
- 추상클래스
- Today
- Total
목록TIL (147)
minOS
ch7-39 인터페이스의 장점 - 두 대상(객체)간의 '연결,대화,소통'을 돕는 '중간 역할'을 한다. 기계가 바뀌어도 사용자에게 영향을 미치지 않으므로 변경에 유리하다. - 선언(설계)와 구현을 분리시킬 수 있게 한다. class B { public void method(){ System.out.println("methodInB"); } } 위 코드는 인터페이스를 사용하여 interface I{ public void method(); } class B implements I{ public void method(){ System.out.println("methodInB"); } } 위와 같이 변경할 수 있다. 이렇게 변경하면 class B가 변경되어도 다른 클래스는 영향을 받지 않는다. 1)직접적인 관과..
ch7-38인터페이스와 다형성(1) - 인터페이스도 구현 클래스의 부모 - 인터페이스 타입 매개변수는 인터페이스 구현한 클래스의 객체만 가능 class Fighter extends Unit implements Fightable{ public void move(int x, int y) { System.out.println("move"); } public void attack(Fightable f) { System.out.println("attack"); } } 인터페이스는 구현부가 없어서 Unit과 Fightable의 선언부가 같아도 문제가 없다. 다중 상속 가능 Unit u = new Fighter(); // 조상 타입의 참조변수로 자손 객체 가르킴 Fightable f= new Fighter(); ..
ch7-35 인터페이스(interface) - 추상 메서드의 집합 - 구현된 것이 전혀 없는 설게도 , 껍데기 (모든 멤버가 public) interface 인턴페이스이름{ public static final 타입 상수이름 = 값; public abstract 메서드 이름 (매개변수 목록); } 예시 interface playingCard{ public static final int SPACE =4; /* 4개의 상수 모두 public static final int 생략, 인터페이스에서 예외 없음*/ final int DIAMOND =4; static int HEART=2; int CLOVER=1; public abstract String getCardNumber(); String getCardkind..
ch7-34 추상 클래스의 작성 2 추상 클래스 사용 이유와 장점 완성된 TV 설계도 3대가 있다고 가정 추상클래스를 사용하여 설계1) 중복을 제거할 수 있고, 완성 설계도(자손 클래스)를 쉽게 작성할 수 있다. 분홍색 부분만 구현하면 된다. 그리고 다른 설계도의 추가(TV50D)도 미완성 설계도(부모 클래스)에서 상속 받은 후 분홍색 부분만 구현하면 되니까 편리하다. 추상클래스를 사용하여 설계2) 부모 클래스만 하트로 바꾸면 나머지 자손 클래스도 하트로 바꿔지기때문에 변경에 용이하다. 고로 코드의 관리가 용이 추상클래스를 사용하여 설계3) 추상 클래스가 완성되 가는 단계별로 하나씩 늘려나가면서 조상 클래스를 상속 받는 식으로 만들면 단계별로 완성된 설계도를 만들 수 있는 선택의 폭이 다양해진다. 추상화..
ch7-33 추상 클래스의 작성 1 - 여러 클래스에 공통적으로 사용될 수 있는 추상 클래스를 바로 작성하거나 기존 클래스의 공통 부분을 봅아서 추상 클래스를 만든다 -> 코드의 중복 제거 class Marine{ int x,y; void move(int x, int y){/* 지정된 위치로이동 */} void stop(){/* 현재 위치에 정지 */} void stimPack(){/* 스팀팩을 사용한다 */} } class Tank{ int x,y; void move(int x, int y){/* 지정된 위치로이동 */} void stop(){/* 현재 위치에 정지 */} void changeMode(){/* 공격 모드를 변경한다 */} } class DropShip{ int x,y; void move..
ch7-31 추상 클래스(abstract class) - 미완성 설계도 , 미완성 메서드를 갖고 있는 클래스 예시) abstract class Player{ abstract void play(int pos); abstract void stop(); } - 다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가 - 상속을 통해 추상 메서드를 완성해야 인스턴스 생성 가능 예시) abstract class Player{ abstract void play(int pos); abstract void stop(); } class AudioPlayer extends Player{ void play(int pos){/*생략 */} void stop(){/* 생략 */} } public class Main { ..