- 객체지향 언어
: 현실은 사물이나 개념처럼 독립되고 구분된 각각의 객체로 이루어져 있으며, 발생하는 모든 사건들은 객체간의
상호작용으로 이루어진다. 이런 개념을 컴퓨터에서도 유사하게 동작하도록 만든 것이 객체지향 언어이다.
ex. 고객 정보를 관리하는 프로그램 만들기
현실 세계의 고객 - 특징(속성) : 이름, 나이, 성별, 전화번호 등
- 기능(메서드) : 결제, 결제취소, 전화번호 변경 등
프로그램에서의 고객 객체
String 이름;
int 나이; → 멤버 변수
String 전화번호;
···
public void 결제() {...} → 멤버 메서드
public void 결제취소() {...}
···
- 인스턴스 화 : new 연산자를 사용하여 클래스를 인스턴스로 만드는 것
Customer cs1 = new Customer();
- 생성자(constructor)
- new 연산자를 통해 클래스를 인스턴스로 만들 때 초기값을 전달하여 멤버 변수에 설정하는 메서드
- 생성자는 클래스 이름과 동일해야 함
- 생성자는 메서드와 유사하나 반환값이 없다.
(메서드는 void 와 같은 반환 타입이 있으나 생성자에는 없다)
- 생성자를 정의하지 않으면 기본 생성자가 자동으로 구현되어 사용된다. ex. public Customer() { }
- 생성자를 정의하면 기본 생성자는 자동 구현되지 않는다.
- 접근제한자
- public : 모든 영역에서 접근 가능
- protected : 동일 패키지 또는 후손 관계까지만 접근 가능
- (default) : 동일 패키지까지만 접근 가능, 명시하지 않음 ()
- private : 해당 클래스 내부에서만 접근 가능
- 클래스 접근 제한자 : public, (default)
- 멤버 변수 접근 제한자 : public, protected, (default), private
- 멤버 메서드 접근 제한자 : public, protected, (default), private
- 멤버 메서드
- 멤버 메서드(함수)
접근제한자 [예약어] 반환타입 메서드명([자료형 매개변수명, ...]) {
메서드 로직; # 문법 규칙 상 [ ] 대괄호 안의 것은 생략 가능 이라는 뜻
return 반환값; # ... 은 반복 가능 이라는 뜻
}
- 반환값은 반드시 메서드에 명시한 반환타입과 일치해야함
- 반환타입이 void 인 경우 return 은 생략 가능
- 메서드는 return 구문을 실행하거나 함수의 끝까지 이동하면 실행 종료
- return 구문에 있는 값을 메서드를 호출한 위치로 반환 후에 종료
- getter & setter
- getter : 멤버 변수의 저장된 데이터를 반환하는 메서드
접근제한자 반환타입 get멤버변수명() { } 형식
- setter : 멤버 변수에 데이터를 저장하기 위해 사용하는 메서드
접근제한자 void set멤버변수명(자료형 매개변수명) { } 형식
- 캡슐화
: 객체를 외부에서 접근하지 못하게 캡슐처럼 감싸서 보호하는 것
객체지향 언어의 3대 특징 중 하나이다.(캡슐화, 상속, 다형성)
* 캡슐화를 위한 기본 원칙
- 클래스 멤버 변수에 대한 접근제한은 private 로 한다.
- 클래스 멤버 변수에 대한 연산처리를 목적으로 하는 메서드는 클래스 내부에 작성한다.(멤버메서드)
- 멤버 메서드는 클래스 밖에서 접근할 수 있도록 public 으로 설정한다.
(멤버 변수에 대한 직접 접근은 불가하나 메서드를 통한 간접 접근 허용)
- 이점 : 외부 프로그램이 특정 객체의 멤버 변수에 접근하여 임의로 값을 변경하는 것을 막아 프로그램의
보안 및 안정성을 높인다.
- 필드 예약어
- final : 한 번만 초기화 하고 사용할 멤버 필드(변수)에 사용한다. (상수)
- static : 동일한 클래스를 생성된 인스턴스간에 공유할 목적으로 사용하는 필드에 사용한다.
'국비' 카테고리의 다른 글
10.19 국비학원 11일차 (클래스 연습문제2) (0) | 2022.10.21 |
---|---|
10.18 국비학원 10일차 (클래스 연습문제) (0) | 2022.10.19 |
10.14 국비학원 8일차 (2차 배열) (0) | 2022.10.17 |
10.13 국비학원 7일차 (배열 복사 : 얕은복사, 깊은복사) (0) | 2022.10.14 |
10.12 국비학원 6일차 (반복문 while, 배열) (0) | 2022.10.13 |