이제부터 클래스를 선언하는 방법에서부터 변수, 멤버에 대해서 알아보려고 합니다.
클래스 이름은 다른 클래스와 식별할 목적으로 사용되므로 자바의 식별자 작성 규칙에 따라서 만들어야 한다.
1. 한글로 이루어진 이름도 가능하나, 영어 이름으로 작성하는 것을 권한다.
2. 알파벳 대소문자는 서로 다른 문자로 인식한다.
3. 첫 글자와 연결된 다른 단어의 첫 글자는 대문자로 작성한다. (예: Calculator. Car, CahtSever)
1. 소스파일 생성: 클래스 이름.java(대소문자 주의)
2. 소스작성
3. 소스 파일당 하나의 클래스를 선언하는 것이 관례
두 개 이상의 클래스도 선언 가능
소스 파일 이름과 동일한 클래스만 public으로 선언 가능
선언한 개수만큼 바이트 코드 파일이 생성
1. 객체 생성 역할
new 클래스();
클래스()는 생성자를 호출하는 코드
생성된 객체는 힙 메모리 영역에 생성
2. new 연산자는 객체를 생성 후, 객체 생성 번지 리턴
1. new 연산자에 의해 리턴 된 객체의 번지 저장 (참조 타입 변수)
2. 힙 영역의 객체를 사용하기 위해 사용
1. 라이브러리용(API: Application Program Interface)
자체적으로 실행되지 않음
다른 클래스에서 이용할 목적으로 만든 클래스
2. 실행용
> 필드(Field): 객체의 데이터가 저장되는 곳
1) 필드의 내용: 객체의 고유 데이터 / 객체가 가져야 할 부품 / 객체의 현재 상태 데이터
2) 필드 선언: 필드 선언은 클래스 중괄호 {}블록 어디서든 존재할 수 있다.
3) 필드의 기본 초기값
4) 필드 사용
필드 값을 읽고, 변경하는 작업을 말한다.
필드 사용 위치:
> 생성자(Constructor): 객체 생성 시 초기화 역할 담당
1) 생성자의 내용: new 연산자에 의해 호출되어 객체의 초기화 담당
필드의 값 설정
메소드 호출해 객체를 사용할 수 있도록 준비하는 역할 수행
2) 필드의 내용: new 연산자에 의해 호출되어 객체의 초기화 담당
3) 생성자 선언
디폴트 생성자 대신 개발자가 직접 선언
개발자 선언한 생성자 존재 시 컴파일러는 기본 생성자 추가하지 않는다
(new 연산자로 객체 생성시 개발자가 선언한 생성자가 반드시 필요하다)
4) 필드 초기화
초기값 없이 선언된 필드는 객체가 생성될 때 기본값으로 자동 설정
다른 값으로 필드 초기화하는 방법
(필드선언할 때, 생성자매개값으로, 매개 변수와 필드명 같은 경우, 매개 변수와 필드명 같은 경우 this사용)
name, ban, memberCount 필드를 생성하고,
생성자를 이용해서 초기값을 정해주었다.
위 생성자를 호출하였고, 생성자가 가지고 있는 매개변수의 갯수에 맞게 name, ban, memberCount 매개변수의 값이 호출되어 결과를 출력했다.
5) 생성자 다양화해야 하는 이유
객체 생성할 때 외부 값으로 객체를 초기화할 필요가 있다.
외부 값이 어떤 타입으로 몇 개가 제공될 지 모른다 (생성자도 다양화)
6) 생성자 오버로딩(Overloading)
7) 다른 생성자 호출 [this()]
this()는 자신의 다른 생성자를 호출하는 코드이다.
※ 반드시 생성자의 철줄에서만 허용된다.
> 메서드(Method): 객체의 동작에 해당하는 실행 블록
위 클래스의 구성 멤버인 메서드(Method)에 대해서는 따로 다음 글에 정리해 보겠습니다.