목록객체지향 (4)
관심쟁이 영호
대망의 첫 장이다. 아 시작하기 전에, 저자님이 핵심적으로 전해주는 말이 있다. 해당 책은 프로그래밍 패러다임의 "객체지향 패러다임"에 대해서 설명하는 책이다. 객체지향 패러다임은 계속해서 발전하고 변화하고 있다. 우리가 공부하는 "객체지향 패러다임"은 버스 노선 중 1개다. 우리는 현재의 정류소에서 "객체지향 패러다임" 버스를 탑승할 뿐이다. 탑승하여(책을 이해하여) 패러다임의 종점까지 함께 달려보자! 1장 객체, 설계 1장에서 저자님은 추상적인 이론에 대한 설명보단, 코드를 통해서 몸소 느껴봄을 강조한다. 코드를 통해 객체지향 프로그램을 설계하고 유지 보수하는 데 필요한 원칙과 기법을 알아보고 핵심적인 내용을 정리해보자! 1장에서의 저자님이 말하고자하는 의견은, "좋은 설계를 하여야 한다." 그렇다면..
오늘은 인터페이스에 관해서 공부를 할 예정이다. (출간된 "자바의 정석" 책을 참고했습니다.) 인터페이스란? - 추상 메서드의 집합이다. (추상 메서드 : 구현을 하지않은 메서드) - 모든 멤버가 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..