객체 지향 프로그래밍(OOP) - 0809

안씅👩🏻‍💻·2022년 8월 9일
0
post-thumbnail

객체 지향 프로그래밍(OOP)

자바 객체지향 프로그래밍 3대 개념

  • 캡슐화 encapsulation
  • 상속 inheritance
  • 다향성 polymorphism

객체 지향 프로그래밍이란?

  • 객체(구성요소) 중심으로 프로그래밍하는 것.
  • 프로그램을 실제 세상에 가깝게 모델링함.
  • 컴퓨터가 수행하는 작업을 객체들 갂의 상호 작용으로 표현함.
  • 클래스(혹은 객체)들의 집합으로 프로그램 작성함.

ex)
커피 자판기 프로그램을 개발한다면,
커피 종휴 선택 동전 넣기 출력 자판기 속에 있는 돈통... 기능들을 실행해야함.

  • coin...자판기 속에 있는 돈통속 동전이라면,
    int coin500, coin100, coin50, coin10; 선언
    • 동전을 넣으면 동전 종류에 따라 coin...증감함.
    • 주문 취소 시, coin...을 돌려주고 돈통에 남는 동전 수 감소함.
  • isFull() boolean 메소드로 돈통이 꽉차면 ture , 아니면 false를 리턴 받음.
    • ture면 주문 받지 않음
      ..... (이런식으로 자판기의 기능 별 코드를 나눠 작성함.)

절차 지향 프로그래밍이란?

  • 시작해서 끝나는 과정을 그대로 프로그래밍하는 것.

  • 절차 지향 프로그래밍의 문제점

    • 절차 지향의 최대 단점은 flow chart상에서 특정 부분을 수정할 경우 어려움.
      • 일부 코드를 수정 시, 전체 프로그램 중에 다른 부분도 같이 수정해야만 함.
  • 개발자 간에 커뮤니케이션 오류가 발생하기 쉬움.

  • 유사한 프로그래밍을 할 경우, 비슷한 소스코드를 재활용하기 매우 어려움.

  • 결과적으로 시간이 오래걸림.
    --> 개발 인력 인건비가 매우 비쌈.

🧑🏻‍🏫 : "아주 간단한 작업도 최소 3명~ 5명이 같이 프로그램을 개발합니다. 절차 지향 프로그래밍은 개발자들이 소통하며 코딩해야해서 서로간에 소통 오류가 많이 발생됩니다."


객체(Object)와 클래스(Class)

자바에서 class와 instance의 차이점

  • 클래스 : 설계도의 개념(field, method)
  • 인스턴스 : 클래스를 힙메모리에 만드는 경우.

  • 파일 이름과 클래스 이름이 같은게 좋음.
  • 클래스는 파일당 하나만 있어야함.
  • new는 heap메모리를 새로 만들 때 사용함
  • 보통 클래스 안에 생성자 overroading 되어 있는 형태

클래스의 변수

  • new 연산자에 의해 return된 객체의 주소 저장.(참조 타입 변수)
  • heap메모리 영역의 객체를 이용하기 위해 사용함.

this.필드명

  • 힙메모리에 존재한는 인스턴스 주소

  • 클래스 안에 필드가 있는 경우

    • 필드는 클래스의 부품.
    • 필드 안에 클래스가 들어가기도 함.
  • 필드는 초기값을 갖음

    • 객체 내부 : this.필드이름으로 접근함.
    • 객체 외부 : 변수.필드이름으로 접근함.

생성자(constructor)

  • 생성자는 필드를 초기화 할 때 사용함.
  • 생성자는 기본 생성자를 갖음
  • 생성자를 만들지 않으면 컴파일러가 자동으로 만들어줌.
profile
그냥 은근슬쩍 살다 가긴 싫어

0개의 댓글