보리차
chapter 07 클래스와 인스턴스 본문
클래스의 정의와 인스턴스의 생성
클래스 = 데이터 + 메소드
클래스의 구성과 인스턴스화
class BankAccount {
// 인스턴스 변수
int balance = 0;
//인스턴스 메소드
public int deposit(int amount) {...}
public int withdraw(int amount) {...}
public int checkMyBalance() {...}
}
인스턴스 변수: 클래스 내에 선언된 변수
인스턴스 메소드: 클래스 내에 정의된 메소드
인스턴스 변수는 같은 클래스 내에 위치한 메소드 내에서 접근이 가능하다.
클래스의 정의는 틀을 구성하는 것과 같다.
클래스의 정의는 붕어빵 틀과 같이 무언가를 찍어내는 틀에 비유할 수 있다. 틀을 이용해서 다음과 같이 인스턴스라는 것을 찍어 내야 변수나 메소드를 사용할 수 있다.
new BankAccount(); // 클래스 BankAccount의 인스턴스화(Instantiation)
인스턴스를 가리켜 객체라고도 한다.
클래스의 참조변수를 선언하는 방법은 자료형 변수의 선언 방식과 동일
BankAccount = myAcnt; // 참조변수 myAcnt의 선언
// 참조변수 myAcnt이 새로 생성되는 인스턴스를 가리킴
myAcnt = new BankAccount();
// 참조변수 선언과 인스턴스 생성을 한 문장으로 묶기
BankAccount myAcnt = new BankAccount();
키워드 new를 통해서 인스턴스를 생성하면 생성된 인스턴스의 주솟값이 반환됨. 즉 참조변수에는 생성된 인스턴스의 주솟값이 저장된다.
- 참조변수는 인스턴스를 참조한다.
- 참조변수는 인스턴스를 가리킨다.
참조변수(Reference Variable)의 특성
- 참조변수도 변수이므로 참조하는 인스턴스를 바꿀 수 있다.
- 메소드의 매개변수로 참조변수를 선언하는 것이 가능하다.
- 참조변수에 null을 대입해 인스턴스와의 관계를 끊을 수 있다.
생성자(Constructor)와 String 클래스의 소개
문자열을 메소드의 인자로 전달할 수 있다.
매개변수로 String형 참조변수를 선언하여 문자열을 인자로 전달받을 수 있다.
클래스를 생성할 때는 생성자를 통해 인스턴스를 초기화해야 한다.
생성자(Constructor)
- 생성자의 이름은 클래스의 이름과 동일해야 한다.
- 생성자는 값을 반환하지 않고 반환형도 표시하지 않는다.
인스턴스 생성의 마지막 단계는 생성자 호출이다.
어떠한 이유로든 생성자 호출이 생략된 인스턴스는 인스턴스가 아니다.
디폴트 생성자
생성자를 생략한 상태의 클래스를 정의하면 자바 컴파일러가 디폴트 생성자를 클래스 정의에 넣어준다.
그러나 아주 예외적인 상황이 아니라면, 생성자는 직접 정의해 주는 것이 좋다.
자바의 이름 규칙
클래스의 이름 규칙
Camel Case 모델
- 클래스 이름의 첫 문자는 대문자로 시작한다.
- 둘 이상의 단어가 묶일 때, 새로 시작하는 단어는 대문자로 한다.
메소드와 변수의 이름 규칙
변형된 Camel Case 모델
- Camel Case 모델과 동일하지만 첫 문자는 소문자로 시작한다.
'Java' 카테고리의 다른 글
chapter 09 정보 은닉 그리고 캡슐화 (0) | 2022.01.25 |
---|---|
chapter 08 패키지와 클래스 패스 (0) | 2022.01.25 |
chapter 06 메소드와 변수의 스코프 (0) | 2022.01.21 |
chapter 05 실행 흐름의 컨트롤 (0) | 2022.01.21 |
chapter 04 연산자 (0) | 2022.01.21 |