객체 지향에 대하여

태량·2023년 7월 11일
0
  1. 객체(Object)란 세상에 존재하는 모든 사물을 의미한다.

  2. “우리가 눈으로 보고, 느끼고, 생활하는 현실 세계처럼 프로그래밍할 수는 없을까?”라는 고민 속에서 탄생한 것이 객체 지향의 개념.

    • 현실세계를 인지하는 방식으로 프로그램을 만들자는 것.
  3. 사물(object)는 속성(filed)과 역할(method)을 갖는다.

public class Mouse {

    public String name;      =>   name, age, countOfTail은 쥐의 속성(filed)

    public int age;

    public int countOfTail;

    public void sing() {
        System.out.println("나는 "+name+"이야. 찍찍");
    }  
		
																=> sing은 쥐가 할 수 있는 역할 혹은 행동(method) 

}
  1. 더 나아가 고유의 사물을 더 큰 범주로 분류화 하는 Class 개념으로 사물을 묶어서 이해한다.

    • 김종민(object), 한효주(object), 김연아(object) 들은 나이, 몸무게, 키 등의 속성을 갖고, 자다( ) 밥먹다 ( ) 등의 역할(메소드)를 갖는다. 그리고 이 객체들은 결국 Person이라는 하나의 큰 Class 범주에 들어간다.
  2. 클래스와 객체의 사전적 정의

    • 클래스 : 분류, 집햡, 같은 속성과 기능을 가진 객체를 총칭하는 개념
    • 객체 : 세상에 존재하는 유일무이한 사물
  3. 세 가지 변수 유형

이름다른 이름사는 곳(메모리)
static 변수클래스 속성, 정적 변수, 정적 속성스태틱 영역(메소드 영역
인스턴스 변수객체 속성, 객체 변수, 인스턴스 필드힙 영역
local 변수지역 변수스택 영역
  1. 객체 지향 4대 특성 ( 캡!! 상추다)

    • 캡슐화

    • 상속( → 확장이라고 이해하는게 더 알맞음)

    • 부모 클래스와 자식 클래스로 이해하지 말고, 상위 클래스와 하위 클래스로 이해하자.

      • 객체 지향에서의 상속은 계층도가 아닌 분류도 개념이다.

        아버지라는 클래스가 있고, 그 하위 클래스가 딸이라는 클래스라면,

        아버지 영희 아빠 = new 딸( ); 이라는 코드가 성립되어야 하는데, 논리적으로 맞지 않다.

        → 따라서 아버지와 딸은 상속 관계가 될 수 없다.

        → 굳이 확장할 필요까진 없지만 만약 상속을 적용하고 싶다면, 사람 클래스에서 아버지 클래스로 확장되어야 함이 합당 하다.

    • 추상화
    • 다형성
  2. DIP 의존 관계 역전 원칙

    • 객체와 객체의 관계에서 능동적인 역할과 수동적인 역할을 OCP를 이용하여 확장성 좋게 바꾸기.
profile
좋은 영향력과 교류를 위하여

0개의 댓글