wink springboot 챌린지 1주차 키워드 과제
javaspringboot
public class BankAccount {
private int balance;
public void deposit(int amount) {
if (amount > 0) balance += amount;
}
public void withdraw(int amount) {
if (amount <= balance) balance -= amount;
}
public int getBalance() { return balance; }
} public class Animal {
public void eat() { System.out.println("밥을 먹는다."); }
}
public class Dog extends Animal {
public void fetch() { System.out.println("공을 물어온다."); }
} public interface Payment {
void pay(int amount);
}
public class CardPayment implements Payment {
@Override
public void pay(int amount) { System.out.println("카드로 " + amount + "원 결제"); }
}
public class KakaoPay implements Payment {
@Override
public void pay(int amount) { System.out.println("카카오페이로 " + amount + "원 결제"); }
} public interface Payment {
void pay(int amount);
}
public class CardPayment implements Payment {
public void pay(int amount) { System.out.println("카드로 " + amount + "원 결제"); }
}
public class KakaoPay implements Payment {
public void pay(int amount) { System.out.println("카카오페이로 " + amount + "원 결제"); }
}인터페이스는 무슨 기능들이 있는지만 하고 어떻게 할지는 정하지 않아서, 구현을 바꿔도 사용하는 쪽에 코드는 수정을 안해도 된다.
// 약속
public interface PostRepository {
Post save(Post post);
}
// 구현
public class MemoryPostRepository implements PostRepository {
private final Map<Long, Post> store = new HashMap<>();
@Override
public Post save(Post post) {
store.put(post.getId(), post);
return post;
}
}
// 사용: Service는 인터페이스만 앎
public class PostService {
private final