이 글은 남궁성의 정석코딩 [자바의정석-기초편]을 수강하며 정리한 글입니다.
🟣 기본 환경: IDE: Eclipse, Language: Java
Class: 유사한 특징을 가진 객체들의 속성을 묶어놓은 집합
Class 구성: Class Header(Class Name), Member field(속성: 변수, 상수), Member Method(동작: 메서드)
1. Class Header
: Class 선언([접근 제한자*] [클래스 종류*] [class] [ClassName*]{})
*접근 제한자: public > protected > default(생략 시, default 취급) > private
public: 모든 접근 허용
protected: 동일 패키지(폴더) 내 또는 상속관계의 객체 접근 허용
default: 동일 패키지(폴더) 내의 객체 접근 허용
private: 동일 클래스 내의 객체만 접근 허용
*클래스 종류: final(최종), abstract(추상), (생략 시, 일반 취급)
*ClassName: 첫글자는 대문자로 표시, 여러단어 포함 시 첫글자는 대문자(카멜 표시법)
2. Member field
변수*와 상수를 의미하며, 객체가 만들어질 때 그 객체의 특징적인 속성을 담아두는 것
* Member variable
객체가 생성될 때, 객체의 특징과 속성을 저장하는 곳으로, static(class)과 instance가 있음
** static(class) variable: 객체 생성 시, 단 하나만 생성되며 모든 객체들이 공유
** instance variable: 객체마다 따로 생성되어 각 객체의 속성으로 자리잡는 변수
3. Member method
특정한 일을 수행하는 행위로 Member field 값을 가지고 작업을 수행할 수도 있으며 method도 static(class)과 instance, 2가지 종류가 있음
* static method는 객체 생성없이 사용 가능, instance method는 객체 생성 후 사용 가능
Overloading: 같은 class 내에서 동일한 이름의 메서드를 여러개 정의한 것
생성자(Construtor)
: Instance가 생성될 때마다 호출되는 instance 초기화 method
특징
- 생성자 이름은 클래스 이름과 동일해야 함
- return 값은 없지만, void를 붙이지 않음
- 모든 class는 반드시 1개 이상의 생성자를 가져야 함
종류
- 기본 생성자: 매개변수가 없는 생성자로 생성자가 하나도 없을 경우에만 컴파일 시 컴파일러가 자동 추가
- 매개변수가 있는 생성자
생성자 this()
: 같은 class 내에서 생성자가 다른 생성자를 호출할 때, class 이름대신 this() 사용
* 다른 생성자 호출 시, 첫줄에서만 사용 가능
Cf. 참조변수 this: instance 자신을 가리키는 참조변수
instance constructor 및 method에서 사용 가능
instance variable과 local variable 구분 시 사용
변수(Variable) 초기화: 변수 선언 후, 처음으로 값을 저장하는 것
Instance Variable(iv): 자동 초기화
- instance 생성 시, iv 생성
Static/Class Variable(cv): 자동 초기화
Local Variable(lv): 수동 초기화해야하므로 반드시 사용 전 초기화 -> 초기화하지 않을 경우, compile error 발생
Reference Type 초기화: ClassName className = new ClassName();
-> Null로 초기화
Primitive Type 초기화: primitiveType variableName = argument;
-> boolean false, 이 외 0으로 초기화
소스 코드
참고 자료
📑 자바(java) 클래스 구성, 멤버 필드, 멤버 메서드, 멤버 변수, 메인메서드, 명령행 매개변수 알아보기
📑 [Java] 자바의 정석 기초편 chapter6 정리(10)
'Java > Java' 카테고리의 다른 글
[자바의 정석_기초편] Chapter07. 객체지향(Object Oriented)_2 (0) | 2023.05.07 |
---|---|
[자바의 정석_기초편] Chapter07. 객체지향(Object Oriented)_1 (0) | 2023.04.10 |
[자바의 정석_기초편] Chapter06. 객체지향 언어(Object Oriented Language)_2 (0) | 2023.04.08 |
[자바의 정석_기초편] Chapter06. 객체지향 언어(Object Oriented Language)_1 (0) | 2023.04.07 |
[자바의 정석_기초편] Chapter05. 배열(Array)_2 (0) | 2023.04.06 |