SRP : Single Response Principle (단일 책임 원칙)
DIP : Dependency Inversion Principle (의존성 역전 원칙)
SRP와 DIP를 지키면 코드의 수정이 편하다
package ch05;
interface CanAble{
public abstract void talk();
}
abstract class 홀직원 implements CanAble{
abstract void 청소();
@Override
public void talk() {
System.out.println("손님과 대화하기");
}
}
abstract class 종업원 extends 홀직원{
void 서빙하기() {
System.out.println("서빙하기");
}
void 주문받기() {
System.out.println("주문받기");
}
}
abstract class 캐셔 extends 홀직원{
void 정산하기() {
System.out.println("정산하기");
}
void 계산하기() {
System.out.println("계산하기");
}
}
abstract class 요리사{
abstract void 요리();
}
class 홍길동 extends 종업원{
요리사 j; // 의존성 역전 원칙
@Override
void 청소() {
System.out.println("화장실");
}
}
class 임꺽정 extends 종업원{
@Override
void 청소() {
System.out.println("주방");
}
}
class 김유신 extends 캐셔{
@Override
void 청소() {
System.out.println("홀청소");
}
}
class 이몽룡 extends 캐셔{
@Override
void 청소() {
System.out.println("테이블");
}
}
class 장보고 extends 요리사{
@Override
void 요리() {
System.out.println("양식");
}
}
class 이순신 extends 요리사{
@Override
void 요리() {
System.out.println("한식");
}
}
public class OOPEx10 {
}
package ch05;
interface RemoconAble{
public void 초록버튼();
public void 빨간버튼();
}
class Samsung implements RemoconAble{
@Override
public void 초록버튼() {
System.out.println("전원이 켜졌습니다.");
}
@Override
public void 빨간버튼() {
System.out.println("전원이 꺼졌습니다.");
}
}
class LG implements RemoconAble{
@Override
public void 초록버튼() {
System.out.println("전원이 커졌습니다.");
}
@Override
public void 빨간버튼() {
System.out.println("전원이 꺼졌습니다.");
}
}
public class Example01 {
public static void main(String[] args) {
Samsung s1 = new Samsung();
LG l1 = new LG();
}
}
연관된 데이터를 저장하기 위한 자료구조
특징
package ch06;
public class ArrayEx06 {
public static void main(String[] args) {
int[] nums = {4,5,6};
System.out.println(nums[0]);
System.out.println(nums[1]);
System.out.println(nums[2]);
}
}