본문 바로가기

Java37

Ch 02. 객체 지향 입문 - 14. 버스 타고 학교 가는 학생의 과정을 객체 지향 프로그래밍으로 구현해보기 버스와 지하철을 타는 예제 프로그래밍 Student.java public class Student { String studentName; int grade; int money; public Student(String studentName, int money) { this.studentName = studentName; this.money = money; } public void takeBus(Bus bus) { bus.take(1000); this.money -= 1000; } public void takeSubway(Subway subway) { subway.take(1200); this.money -= 1200; } public void showInfo() { System.out.println(stu.. 2022. 12. 30.
Ch 02. 객체 지향 입문 - 13. 객체 간의 협력 (collabration) 객체가 하는 일은 그 객체 이름에 맞는 유일한 일들을 하는 것이 맞다. 객체 지향 프로그래밍에서의 협력 객체 지향 프로그램에서 객체 간에는 협력이 이루어짐 -하나의 객체가 혼자 돌아가는 것이 아니고 다른 객체와 유기적으로 연동이 됨 협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현되어야 함 매개 변수로 객체가 전달되는 경우가 발생 ex) 버스중에 어떤 버스를 타는가 (학생이 타는 버스가 지정되어야 함) - 버스자체가 매개변수로 전달 경우가 많음 객체 협력의 예 2022. 12. 30.
Ch 02. 객체 지향 입문 - 12. 객체 자신을 가리키는 this this : 다른 언어에도 종종 보이는 키워드임 this가 하는 일 인스턴스 자신의 메모리를 가리킴 생성자에서 또 다른 생성자를 호출 할때 사용 (후에 서술되는 super도 알아두기) 자신의 주소(참조값)을 반환 함 생성된 인스턴스 메모리의 주소를 가짐 클래스 내에서 참조변수가 가지는 주소 값과 동일 한 주소 값을 가지는 키워드 public void setYear(int year) { this.year = year; } 생성자에서 다른 생성자를 호출 하는 this 클래스에 생성자가 여러 개 인경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다른 statement를 .. 2022. 12. 30.
Ch 02. 객체 지향 입문 - 11. 캡슐화 (encapsulation) 마찬가지로 private나 protected 키워드를 이용해서 정보를 하이딩 하는 것임 캡슐화는 이보다 객체를 더 감싸서 꼭 필요한 메서드 한두개만 오픈하도록 만드는 용도로 사용할 수 있음 정보 은닉을 활용한 캡슐화 꼭 필요한 정보와 기능만 외부에 오픈함 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 함 -이런경우는 클라이언트가 제어할 수 있는 부분이 적기 때문에 캡슐화가 잘 되어있는 객체같은 경우는 클라이언트에서 사용할 수 있는 api가 한정적임 그 객체가 하는 기능이 매번 일관성있게 제공될 수 있다 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다. -디버깅이나 기능을 추가할 때 유연함 레포트 만들기 예제 MakeReport.j.. 2022. 12. 30.