Programming Lang/Java
[Java] Class, Instance, Constructor
haema_dev
2022. 9. 7. 02:44
클래스란?
object (객체)
a thing that can be seen, held, or touched, usually not a living thing
보통 생물이 아닌, 보이고, 잡히고, 만질 수 있는 것
class (클래스)
a group of related plants or animals, in the general classification of plants and animals
동식물의 일반적인 분류에서 관련 식물 또는 동물의 그룹
instance (인스턴스)
a particular situation, event, or fact, especially an example of something that happens generally
특정한 상황, 사건 또는 사실, 특히 일반적으로 일어나는 일의 예
constructor (생성자)
someone who builds something or puts it together from different parts
다른 부분에서 무언가를 만들거나 조립하는 사람
객체지향 프로그래밍의 장점
- 재사용성이 높다
- 유지보수 용이
- 중복 제거
클래스와 객체는 다르다.
클래스로부터 객체를 만드는 과정
인스턴스화
1. new 연산자 선언 (heap 메모리 사용)
2. 생성자를 호출
3. 인스턴스를 생성
클래스로부터 만들어진 객체
인스턴스
1. 클래스 변수 (=static 변수)
2. 클래스 객체
ex) 책상은 객체이고 Desk Class 는 instance 다.
생성자
생성자의 조건
- 생성자는 클래스 이름과 같아야한다.
- 리턴 값이 없다.
생성자의 종류
- 기본 생성자
- 1개 이상의 파라미터를 가진 생성자
생성자의 목적
- 자바 클래스의 객체(도는 인스턴스)를 생성하기 위해서 존재
자바 생성자의 특징
- 생성자에 리턴 타입이 없는 이유는 생성자의 리턴 타입이 클래스의 객체이기 때문
- 생성자가 하나도 존재하지 않을 시에는 기본 생성자가 자동으로 주입된다.
- 생성자는 여러 개의 파라미터를 가질 수도 있는데 이미 하나라도 생성자가 존재하고 있을 시에는 기본 생성자가 자동 주입되지 않는다.
- 1개 이상의 파라미터를 가진 생성자는 초기화의 역할을 한다.
여기서 용어 주의 !!
parameter : 매개변수.
argument : 인수. 실데이터. 값 그 자체.
Q. 참조형은 주소를 저장하는 타입이고, 클래스가 기본형이 아니면 클래스를 만든다는 것은 곧 주소가 생성된다는 의미일까?
A. 그렇다.
new 연산자를 사용하여 클래스를 만들 때, 생성자가 호출되면서 인스턴스화가 진행된다. 인스턴스화가 되었다는 것은 실체가 생겼다는 뜻이다. 즉, 주소를 저장할 공간이 생겼다는 의미이다.
기본형 변수
- 값을 저장
참조형 변수
- 주소를 저장
Q. 생성자가 없다면 객체를 얻을 수 없을까?
A. 그렇지 않다. static 이 여기서 나온다. → 참고링크
더보기
참고자료 : 자바의 정석, 자바의 신
(+ 개인 생각)