[JAVA]객체 지향 프로그래밍과 클래스

Date:     Updated:

카테고리:

태그:

[11] 객체 지향 프로그래밍과 클래스

11.1. 객체와 객체 지향 프로그래밍 (Object Oriented Programming, OOP)

  • 객체(Object)
    • 구체적 데이터 단위(물리적 객체)
      • ex)
           개, 고양이, 호랑이, 학생, 회원, 소나타...
        
    • 추상적 데이터 단위(개념적 객체)
      • ex)
           동물, 주문, 배송, 자동차,....
        
  • 절차 지향 프로그래밍과 객체 지향 프로그래밍
    • 절차 지향 프로그래밍
      • 시간이나 사건의 흐름 중심
        • ex)
            기상 -> 세면 -> 식사 -> 버스 탑승 -> 요금 지불 -> 학원 도착
          
    • 객체 지향 프로그래밍
      • 각각의 객체 중심
        • ex)
            객체 : [학생] / [밥] / [버스] / [학교]
                                  
                [학생] -> 먹는다 -> [밥]
                [학생] -> 탄다 -> [버스]
                [학생] -> 간다 -> [학원]
          
      • 객체 지향 프로그래밍 방법
        • 클래스를 통해 객체 정의 → 메서드를 통해 각 객체의 속성 구현(멤버 변수) → 메시지 전달을 통한 객체간 협력 구현
      • 객체의 예
        • 온라인 쇼핑몰에 로그인을 하고 여러 판매자의 제품 중 하나를 골라 주문
        • 학원 가는 길에 별다방에 들려 커피를 주문
        • 성적 확인을 위해 학사 관리 시스템에 로그인하여 수강했던 과목들의 성적 확인

11.2. 클래스

  • 객체와 관련된 데이터와 처리 동작을 한데 모은 코드 뭉치
  • 추상화(Abstraction) : (= 일반화) 데이터를 비슷한 특징이나 동작을 기준삼아 추려내는 것

    객체     추상화된 클래스
    탈것 이륜 자전거, 오토바이 Bike
    = 자동차 승용차, 버스, 트럭 Car
    = 운송수단 자동차, 배, 비행기 Vehicle
  • 명사적 특징을 뽑아내는 추상화 과정 => 멤버 변수(필드) 추출
  • 동사적 특징을 뽑아내는 추상화 과정 => 멤버 함수(메서드) 추출

  • 클래스는 객체의 청사진(Blueprint)이다.

  • this : 객체 자신의 주소
  • super : 조상 객체의 주소

11.3. 객체와 클래스

  • 클래스 : 객체를 생성하기 위해 추상화를 거쳐 기술해놓은 프로그래밍 설계도
  • 객체(Object)생성 / 인스턴스(Instance)화 : 클래스를 기초삼아 실체화하는 작업
  • 소프트웨어의 객체 : 설계도(클래스)에 따라 구현된 내용을 메모리에 탑재, 메모리 주소를 부여한 것

  • 클래스를 객체로 만드는 코드

          Student myStudent = new Student();
          : Student 클래스의 Student() 생성자를 이용, new를 통해 새로 생성된 객체를 메모리에 적재  변수 myStudent에 대입  
    
    클래스 타입 (참조)변수 객체 생성 생성자
    Student myStudent new Student();

JAVA 카테고리 내 다른 글 보러가기

댓글 남기기