목록OOP (3)
관심쟁이 영호
오늘은 인터페이스에 관해서 공부를 할 예정이다. (출간된 "자바의 정석" 책을 참고했습니다.) 인터페이스란? - 추상 메서드의 집합이다. (추상 메서드 : 구현을 하지않은 메서드) - 모든 멤버가 public이다. - 구현된 내용이 하나도 없다. 이렇게 볼 수 있다. 그럼 추상클래스와 무엇이 다른가? 추상클래스는 구현된 메서드도 포함할 수 있다. (인터페이스도 JDK 1.8 version 부터는 구현된 상수, static 메서드와 같은 멤버변수를 가질 수 있다.) 인터페이스 선언방법 interface practice{ public static final FIRST = 1; public abstract abc(int num); } 위와 같이 인터페이스를 선언할 수 있다. 인터페이스의 구현 인터페이스를 구현..
오늘은 추상클래스와 추상메서드에 대해서 공부를 해볼 계획이다. 추상클래스? 추상클래스는 완성하지않은 메서드를 가지고 있는 클래스를 말한다! 한마디로, 몸통부분인 "{}"가 없는 것을 말한다. 클래스에는 "abstract"라는 키워드가 필요하다. 추상메서드? 추상메서드 또한 같다. 몸통부분 "{}"이 없는 메서드를 말한다. 메서드에는 "abstract"라는 키워드가 필요하다. 아래 코드를 통해서 살펴보자. abstract class MyClass{ abstract void go(int num); abstract void stop(int result); } 여기서 보았듯이, 몸통부분이 없는 것을 볼 수 있다. 왜 사용하는 걸까? 다른 클래스를 작성하는데 도움을 주기 위해서 사용한다! - 다음 코드를 살펴보자..

코딩을 하다보면, public이라는 단어를 가장 먼저 사용했을 것이다. 근데 다른 사람들의 코드를 보면 private를 자주 볼 수 있다. 얼핏 공부하기로는 public은 모든 곳에서 접근할 수 있다고 한다. 근데 왜 굳이 코딩이 힘들게 private를 설정해두었을까?? 그것은 객체지향적 설계 때문이라고 할 수 있다. 코드를 예시로 살펴보자! Member 객체로 생성된 bob이라는 사람이 있다. state는 배고픔의 상태이다. 배고픔의 상태가 50보다 낮다면, 배를 채우라는 의미로 +10을 해주었다. 객체지향 관점에서는 타객체의 변수에 접근할 때, 변수에 바로 접근하면 안된다. 이 코드를 객체지향 관점으로 해보자. Member 객체에 eat() 이라는 함수를 생성하였다. eat 함수의 내용으로 state..