Java_객체지향프로그래밍2

5w31892p·2022년 11월 18일
0

Java_실시간

목록 보기
2/7

📜 Java

:: ✍ 실시간 강의 | 객체지향 프로그래밍

:: 객체

  • 객체 = Object(사물), Object는 다양한 속성들의 집합
  • 속성 또한, 속성으로 이루어진 “객체"
class User {
   private name;

   private Address address;

   private String postalCode;
   private String addressName;
   private String addressDetailName;

   public String getUserAddressFullName() {
          return addressName + addressDetailName;
    }

    public String getUserAddressFullName() {
          return new Address().getFullName();
    }
}

public void main(String args[]) {
     new User().getUserAddressFullName();
}

class Address {
   private String postalCode;
   private String name;
   private String detailName;
   private String state!?!?

   public String getFullName() {
          return name + detailName;
    }
}

// 기본주소 + 상세주소
// 풀네임 주소. 

사물을 설명하는 것은 그 사물이 가지고있는 속성을 설명하는 것 ⇒ 객체

  • 붕어빵
    • color - 노란색
    • shape - 붕어
    • 내용물 - 팥
    • 노란색이고 내용물로 팥이 들어 있는, 붕어 모양인 것은? ⇒ 붕어빵

:: 객체 지향

  • 목표
    • 실세계를 모방하는 것이아니라, 창조하는 것

:: 객체 의인화, 은유

  • 커피는 실세계에서 스스로 커피양이 안줄어듦

  • 소프트웨어세계는?
class Coffee {
		int amountOfCoffee = 500;

    public void drink() {
       this.amountOfCoffee = this.amountOfCoffee - 500;
    }
}
  • 현실 세계의 존재 → 소프트웨어의 존재
    • 수동적(현실 세계) → 능동적 변함(소프트웨어 세계)
  • 소프트웨어의 세계에서는 객체가 더 많은 일들을 스스로 할 수 있어야 함
    • 실세계에서는 존재하지도 않는 추상적인 것들 또한 스스로 결정할 수 있는 존재로 탄생
  • 즉, 객체지향은 현실 세계를 모방한 것이 아니라 현실 세계를 참조하여 새로운 세상을 탄생시키는 것
  • 객체는 현실에 대한 은유

:: 객체지향 설계의 핵심

  • 메시지: 객체들이 협력하며, 목표를 달성해나가는 과정
  • 협력: 객체들 간의 관계

:: 역할과 책임, 협력(+메시지)

  • 각 객체들은 역할과 책임이 주어짐
  • 각 객체들은 서로 협력을 통하여 움직임
    • 협력은 요청과 응답
    • 역할과 책임을 가지는 객체들이, 서로 협력을 통해서 시스템을 구성
    Customer →(커피주문)→ Casher
    Customer →(커피받음)→ Casher
  • 객체의 품질이 협력의 품질을 결정
    • 각 객체가 요청(메시지)에 대하여, 성실히 이행하는가에 달려있음

:: 객체 지향

  • 객체는 다른 객체와 협력하기 위해 메시지를 전송하고,
  • 메시지를 전달 받은 객체는 메시지를 처리하는 데 적합한 메서드를 자율적으로 선택하여 처리
  • 클래스는 객체들의 협력 관계를 코드로 옮기는 도구
  • 객체의 역할, 책임, 협력에 집중
  • 객체지향은 객체를 지향하는 것 (클래스를 지향하는 것이 아님)

카페시스템

강의 다시보기

0개의 댓글