일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- @configuration
- DI
- http 메시지 컨버터
- fielderror
- 서블릿
- 코드트리
- 추상클래스
- java
- 테스트코드
- 티스토리챌린지
- 코딩테스트
- 김영한
- 오버라이딩
- 스프링컨테이너
- 프록시
- 참조변수
- 의존관계
- 다형성
- 싱글톤
- 오블완
- objecterror
- JSON
- 백준
- 코드트리조별과제
- HttpServletResponse
- 인터페이스
- equals()
- 스프링
- html form
- Today
- Total
목록TIL/남궁성의 자바의 정석 (34)
minOS
ch7-39 인터페이스의 장점 1)개발 시간을 단축할 수 있다. 예시) Java에서 제공하는 List 인터페이스를 구현하는 클래스 중 하나인 ArrayList는 많은 일반적인 리스트 동작을 구현하고 있다. //인터페이스 import java.util.*; public interface List extends Collection { // 요소 추가 boolean add(E e); // 인덱스 위치에 요소 추가 void add(int index, E element); // 모든 요소 삭제 void clear(); // 해당 요소가 리스트에 포함되어 있는지 여부 확인 boolean contains(Object o); // 해당 인덱스의 요소 반환 E get(int index); // 리스트가 비어 있는지 여부..
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..