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

타키탸키·2022년 8월 16일
0

JAVA

목록 보기
2/8
  • 절차 지향 프로그래밍
    • C언어, 파스칼, ...
    • 절차를 중심으로 프로그래밍하는 것
    • ex:) 비행기 타는 법(티켓 끊기 - 수속 밟기 - ...)
  • 객체 지향 프로그래밍
    • 객체를 중심으로 프로그래밍 하는 것
    • 객체의 상태(데이터)와 객체에 행할 수 있는 행위(동작)를 정의
    • ex:) 비행기(데이터 - 항공, 좌석 / 행위 - 탑승하기) ...

  • 클래스
    • 템플릿
    • 객체의 속성과 행동을 정의
  • 객체
    • 클래스의 인스턴스(사례)
  • 멤버 데이터, 상태, 필드
    • 객체에 있는 데이터
    • 객체가 내포할 수 있는 데이터
    • 각 필드에서 다른 값을 가짐(지구&금성)
    • 멤버 변수를 통해 상태를 표현할 수 있다
    • 객체의 상태는 변하는 값
    • 고유의 인스턴스(독립적)
  • 동작, 메서드, 행위
    • 객체에 행할 수 있는 행위
    • 클래스의 동작
  • Person
    • 상태: name, address, hobbies, work
    • 동작: walk(), run(), sleep(), eat()

  • 캡슐화
    • 특정 클래스의 데이터에는 해당 클래스만 접근할 수 있도록 해야 한다는 개념
    • 특정 객체에 속하는 데이터를 숨겨 접근을 차단하고 연산만 허용한다
    • 서로 다른 클래스에서 하나의 클래스가 다른 클래스의 내부 변수에 직접 접근하는 것은 바람직하지 않다
    • 다른 클래스가 해당 데이터에 접근하려면 메서드를 통해 간접적으로 접근해야 한다
  • 캡슐화의 장점
    • 잘못된 데이터의 객체 접근 제한
      • 메서드를 통해 특정 파라미터 제한 가능
    • ex:) 메서드 내에서 조건문을 설정하여 음수는 받지 않음
  • 접근 제어자
    • private
      • 외부 클래스에서 접근 불가능
    • this를 통한 접근
  • setter
    • 캡슐화 된 변수에 값을 설정할 때 사용
  • getter
    • 캡슐화 된 변수의 값을 가져올 때 사용
  • setter / getter 자동 생성
    • 이클립스에서 제공하는 기능
    • 오른쪽 클릭 >> source >> generate getter/setter
  • 추상화
    • 어떤 객체를 사용할 때, 그 동작 원리까지는 알 필요가 없다
    • API는 그 내부 로직을 모르더라도 호출만으로 사용이 가능하다
    • 특정 객체의 접근을 제한하는 캡슐화와 관련 있는 개념

  • 생성자
    • 객체를 만들 때, 해당 객체의 최초 상태를 설정해야 한다
    • 프로그램 시작 시, 초기값 지정이 가능하다
      • 지정하지 않으면 자동으로 0
    • 반환 타입이 필요하지 않다
    • 생성자의 메서드명은 클래스명과 동일하다
  • new 키워드로 새로운 객체를 만들 때마다 생성자가 호출되고 생성자 내부의 코드가 실행된다
  • 생성자를 따로 만들지 않으면 자바 컴파일러가 자동으로 (내부가 비어 있는)디폴트 생성자를 제공한다
  • 하나의 클래스에서 여러 생성자를 가질 수 있고 하나의 생성자 내부에서 다른 생성자를 호출할 수 있다
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글