TIL(2022.03.15)

조지성·2022년 3월 15일
0

TIL

목록 보기
42/78
post-thumbnail

객체지향은 인간지향이다

  • 객체지향은 우리가 주변에서 사물을 인지하는 방식대로 프로그래밍 하는 방식
  • 객체 지향은 직관적이다.
  • 객체 지향을 이해하기 위한 큰 그림
    1. 세상에 존재하는 모든 것은 사물, 즉 객체(object)
    2. 각각의 사물은 고유하다
    3. 사물은 속성(property)를 가진다.
    4. 사물은 행위(method)를 한다.

객체 지향의 4대 특성 - 캡상추다

  • 캡(캡슐화) : 정보은닉
  • 상(상속) : 재사용
  • 추(추상화) : 모델링
  • 다(다형성) : 사용 편의

클래스 vs 객체

  • 클래스 : 분류에 대한 개념 , 실체가 아님
  • 객체 : 실체
    클래스 : 객체 = 펭귄 : 뽀로로 = 사람 : 김연아

추상화 : 모델링

  • 추상화 : 여러가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악

추상화는 모델링

  • 객체
    1. 세상에 존재하는 유일무이한 사물
    2. 속성과 기능을 가지고 있다.
    3. 클래스의 인스턴스
  • 클래스
    1. 분류,집합,같은 속성과 기능을 가진 객체를 총칭

=> 세상에 존재하는 유일무이한 객체를 특성(속성+기능)에 따라 분류해 보니 객체를 통칠할 수 있는 집합적 개념 , 클래스(분류)가 나오게된다.

  • 추상화
    : 구체적인 것을 분해해서 관심 영역에 있는 특성만 가지고 재조합하는 것 = 모델링
    1. OOP의 추상화는 모델링
    2. 클래스 : 객체 = 펭귄 = 뽀로로
    3. 클래스 설계에서 추상화가 사용
    4. 클래스 설계를 위해서는 애플리케이션 경계부터 정해야한다.
    5. 객체 지향에서 추상화의 결과는 클래스
    6. 추상화 = 모델링 = 자바의 class 키워드

추상화와 T메모리

package ex03;

public class Mouse {
	public String name;
	public int age;
	public int countOfTail;
	
	public void sing() {
		System.out.println(name +" 찍찍!!");
	}
}
package ex03;

public class MouseDriver {
	public static void main(String[] args) { // 1번
		Mouse mickey = new Mouse(); 
		mickey.name = "미키";
		mickey.age = 85;
		mickey.countOfTail = 1; 
		
		mickey.sing(); //2번
		
		mickey= null; //3번
		
		Mouse jerry = new Mouse(); 
		
		jerry.name = "제리";
		jerry.age =73;
		jerry.countOfTail = 1;
		
		jerry.sing();//4번
		
	}
}
  • 1번

    - name ,age ,countOfTail은 객체에 대한 속성이기 때문에 객체가 생성돼야만 속성의 값을 저장하기 위한 메모리 공간이 스태틱 영역이 아닌 힙 영역에 할당
    - main() 메서드는 클래스의 멤버 메서드 , sing()은 객체의 멤버 메서드 , 두개는 static 키워드를 통해서 구분

  • 2번

    - mickey에는 Mouse객체의 주소를 가지고 있다.

  • 3번

    - mickey가 더이상 아무도 참조하지 않으면 가비지 컬렉터가 Mouse객체를 수거해간다.

  • 4번

profile
초보 개발자의 성장기💻

0개의 댓글