본문 바로가기
Java/Java

[자바의 정석_기초편] Chapter06. 객체지향 언어(Object Oriented Language)_3

by HJ0216 2023. 4. 9.

이 글은 남궁성의 정석코딩 [자바의정석-기초편] 수강하며 정리한 글입니다.

 

 

🟣 기본 환경: 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으로 초기화

 

 

 

소스 코드

🔗 HJ0216/java-practice

 

참고 자료

📑 자바(java) 클래스 구성, 멤버 필드, 멤버 메서드, 멤버 변수, 메인메서드, 명령행 매개변수 알아보기

📑 [Java] 자바의 정석 기초편 chapter6 정리(10)