본문 바로가기
Base/Java

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

by 귀멸 2022. 5. 30.

0. 객체 지향 프로그래밍(OOP : Object Oriented Programming)
   - 객체 중심의 프로그래밍 방식
   - 객체끼리의 상호 작용을 통하여 프로그램을 작성하는 방식
 
   - 부품화
   - 캡슐화 == 클래스
      ; 속성과 기능을 하나의 캡슐처럼 묶어서 정의한 것
   - 정보은닉
      ; 클래스의 멤버를 보호하기 위해서 외부로부터 접근을 제한하는 것을 말한다
      ; 프로그램의 안정적 구현과 연관이 있다
   - 상속성
      ; 클래스끼리 물려주거나 물려받는 것을 말한다
   - 다형성 
      ; 다양한 형태나 성질
      ; 하나의 클래스 객체를 여러 개의 클래스로 표현하는 것
 
   - 객체(Object)
      ; 사전적인 의미로는 현실세계에 존재하는 모든 것... 하나의 완벽한 대상체
      ; 프로그램에서의 객체는 어떠한 대상을 표현하기 위한 정보(속성)와 

        그 대상을 컨트롤할 수 있는 기능(메서드)을
        하나의 루틴으로 묶은 개별적인 개체로 표현되는 변수
      ; 클래스(class)라는 사용자 정의 자료형을 통하여 만들어지는 변수
 
    - 클래스(Class)
      ; 어떠한 대상을 표현하기 위한 정보(속성)와 그 대상을 컨트롤할 수 있는 기능을
        하나의 블록으로 묶어 정의한 사용자 정의 자료형
   
    - 구성요소
      속성 + 기능 + 정보은닉
      멤버 변수 + 멤버 메서드 + 접근 지정자 = Class(사용자 정의 자료형)
    
    - 세부형식
    class 클래스명 {
    멤버변수 - 클래스를 구성하는 데이터를 저장하는 공간...
 
    멤버 메서드 - 클래스의 기능
   - 생성자  : 객체 생성 시 단 한 번만 호출되는 메서드 - 객체 초기 설정
   - setter    : 멤버 변수의 값을 세팅하는 메서드
   - getter    : 멤버 변수의 값을 반환하는 메서드
   - user 메소드 : 사용자 필요에 의해 만들어지는 메서드
 
    중첩 클래스... 나중에...
  }

 
1. 접근 지정자(접근 제한자)
   - 정보은닉을 위해서 사용하는 키워드
   - 클래스의 멤버를 단계적으로 접근을 제한하는 키워드
   - public > protected > package > private
 
   - private
     ; 클래스 내부에서만 접근이 가능하고 그 외의 외부에서는 모두 접근 불가
     ; 별다른 제약이 없으면 멤버 변수는 private으로 설정한다
   - protected
     ; 상속받은 클래스에서는 접근이 가능하고 그 외의 외부에서는 접근 불가
     ; 자바에서는 같은 패키지 일 경우 접근이 가능하다
     ; 다른 패키지일 경우는 상속 시에만 접근 가능
    - package(default)
     ; 우리가 접근 지정자를 사용하지 않으면 자동으로 지정되는 접근 지정자
     ; 같은 패키지에서만 접근이 가능하도록 만드는 접근 지정자
    - public
     ; 클래스 내부와 외부 모두 접근 가능
     ; 클래스에 public을 붙이면 다른 패키지에서 임포트를 통해 사용이 가능하다
     ; 별다른 제약이 없으면 멤버 메서드는 public으로 설정한다
    
 2. setter
   - 멤버 변수의 값을 세팅하는 메서드
   - 일반적으로 매개변수명은 멤버 변수명과 똑같이 둔다...
   - 상황에 따라서 _를 붙이거나 줄임말을 사용하기도 한다..
   - 일반적인 형식
    void set멤버 변수명(매개변수) {  코드 정의  }
  
 3. getter 
   - 멤버 변수의 값을 반환받는 메서드
   - 일반적인 형식
     반환 자료형 get멤버 변수명() { 코드 정의(return 멤버 변수명;) }
 

 4. 생성자(Constructor)
  - 객체 생성 시 단 한 번만 호출되는 멤버 메서드
  - 객체 생성 과정
  - 공간 할당 -> 생성자 호출
  - 객체 준비를 할 때 사용한다.
  - 멤버 변수 초기화
  - 객체의 초기 설정을 잡는 메서드
  - 생성자를 정의하지 않으면 자동으로 디폴트 생성자가 만들어진다
  - 형식
     ; ㄱ. 반환 자료형이 없다 (반환 값도 없다)
     ; ㄴ. 메서드명은 반드시 클래스명과 동일하여야 한다
     ; ㄷ. 매개변수를 가질 수 있다 (메서드의 오버로드가 가능하다)
  - 생성자가 여러 개 존재 - 객체 생성 시 상황에 맞춰 객체를 생성하기 위해 상황마다 생성자를 만든다
   
   클래스명(매개변수) { 코드 정의; }
  - 디폴트 생성자
     ; 객체 생성 과정의 순서 유지를 위해서 자동으로 만들어지는 생성자
     ; 아무런 기능은 존재하지 않는다  (코드가 없다)
     ; 우리가 생성자를 하나라도 정의하면 디폴트 생성자는 만들어지지 않는다
  - 형식
     클래스명( ) {   }   

 

'Base > Java' 카테고리의 다른 글

11. array (배열)  (0) 2022.05.30
10. for 반복문  (0) 2022.05.23
9. while 반복문  (0) 2022.05.22
8. 선택문 (switch ~ case)  (0) 2022.05.22
7. Math.random()와 if-else 구문 연습  (0) 2022.05.22

댓글