Java 13. 객체지향프로그래밍 4

업데이트:
1 분 소요

객체지향프로그래밍

1.캡슐화 (encapuslation)

정보 은닉을 활용한 캡슐화

  • 꼭 필요한 정보와 기능만 외부에 오픈함
  • 대부분의 멤버 변수와 메서드를 감추고 외보에서 통합된
    인터페이스만은 제공하여 일관된 기능을 구현하게 함.
  • 각각의 메소드나 멤버변수를 접근함으로써 발생하는 오류를 최소화 함.
	private int busNumber;
	private int passengerCount;
	private int money;

2.객체간의 협력 (collabration)

  • 객체지향 프로그램에서 객체 간에는 협력이 이루어짐
  • 협력을 위해서는 필요한 메세지를 전송하고, 이를 처리하는 기능이 구현되어야 함.

  • 매개 변수로 객체가 전달되는 경우가 발생.
  • 객체의 협력
    ex) 버스를 탄다.
        지하철을 탄다.
                                    버스
    학생                            - 버스번호
     - 이름                          - 승객 수
     - 학년      ---------------->   - 수입      
     - 가진돈                        - 타다
                                     지하철        
        |                           - 노선번호           
        |------------------------>  - 승객 수
                                    - 수입 
                                    - 타다 
  • lab
        - 이순신은 지각을 해서 택시를 타야 했습니다.
          이순신은 20000원을 가지고 있었는데, 10000원을 택시비로 사용함
          택시는 'BoB 운수' 회사 택시를 탔습니다.

        - 출력 결과 ->
            - 이순신님의 남은 돈은 10000원입니다.
              BoB 운수택시 수입은 10000원입니다.  
  • person
public class Person {
	private String personName;
	private int money;
	
	public Person(String personName,int money) {
		this.personName=personName;
		this.money=money;
	}
	
	public void takeTaxi(Taxi taxi) {
		taxi.take(10000);
		this.money -=10000;
	}
	public void PersonInfo() {
		System.out.println(personName+"님의 남은 돈은"+money+"입니다.");
	}
}
  • Taxi
public class Taxi {
	private String taxiName;
	private int money;
	
	public Taxi(String taxiname) {
		this.taxiName=taxiname;
	}
	public void take(int money) {
		this.money +=money;
	}
	public void taxiInfo() {
		System.out.println(taxiName+" 운수택시 수입은"+money+"입니다.");
	}	
}
  • Test
public class PersonTest {

	public static void main(String[] args) {
		Person person= new Person("이순신",20000);
		Taxi taxi= new Taxi("BoB");
		
		person.takeTaxi(taxi);
		person.PersonInfo();
		taxi.taxiInfo();
	}

}

댓글남기기