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 |
댓글