[정리] Java의 Class, Object, Constructor에 대해 알아보자!

Wook _·2023년 9월 12일
0

정리

목록 보기
8/13

Class, Object, Constructor!

Constructor은 영어로 보면 뭔지 모를 수도 있지만,
우리나라 말로 생성자를 의미한다.

각설하고 바로 각 주제에 대해 알아보자!


1. Class

클래스는 자바에서 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다.

자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 된다.

클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성된다.

즉, 필드(field)란 클래스에 포함된 변수(variable)를 의미한다.

또한, 메소드(method)란 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있다.

Instance

자바에서 클래스를 사용하기 위해서는 우선 해당 클래스 타입의 객체(Object)를 선언해야 한다.

이렇게 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스화라고 한다.

또한, 선언된 해당 클래스 타입의 객체를 인스턴스(Instance)라고 한다.

즉, 인스턴스란 메모리에 할당된 객체를 의미한다.

자바에서는 하나의 클래스로부터 여러 개의 인스턴스를 생성할 수 있으며, 생성된 인스턴스는 독립된 메모리 공간에 저장된 자신만의 필드를 가질 수 있다.

하지만 해당 클래스의 모든 메소드(method)는 해당 클래스에서 생성된 모든 인스턴스가 공유하게 된다.


2. Object

객체란 의사나 행위가 미치는 대상, 문장 내에서 동사의 행위가 미치는 대상, 작용의 대상이 되는 쪽

이란 의미를 가지고 있지만, 이것은 사전적 의미다.

자바에서는 다음과 같다.

객체란 클래스의 인스턴스(Instance)이다.
객체는 클래스로부터 생성되며, 클래스의 속성과 메소드를 가지고 있다. 실제 프로그램에서 데이터와 동작을 담당하는 구체적인 개체를 나타낸다.

객체와 인스턴스는 종종 혼동되는 용어이지만, 객체 지향 프로그래밍에서는 다른 의미를 갖는다.

객체

  • 객체는 클래스의 인스턴스이다. 클래스는 객체를 생성하기 위한 설계도 역할을 한다.
  • 객체는 클래스의 인스턴스이므로 클래스에 정의된 필드와 메소드를 가지며, 클래스에 정의된 대로 동작한다.

인스턴스

  • 인스턴스는 객체의 구체적인 실체를 나타낸다. 객체가 실제로 메모리에 할당되어 사용될 때 그것을 객체의 인서턴스라고 한다.
  • 클래스로부터 생성된 실제 객체를 인스턴스라고 한다. 따라서 "인스턴스"는 "객체"라는 개념의 특수한 경우이다.

간단히 정리하면 클래스는 객체를 만들기 위한 설계도이며, 객체는 클래스의 인스턴스이다.

클래스로부터 생성된 객체를 인스턴스라고 부르는 것이다.


3. Constructor(생성자)

생성자란 객체를 생성할 때 호출하는 메소드와 비슷한 것을 의미한다.

주로 일반 멤버변수의 초기화나 객체를 생성할 때 실행하는 작업을 정리한다.

class Pair{
	int r, c;
    
    Pair(int r, int c){
    	this.r = r;
        this.c = c;
    }
}

특징은 다음과 같다.

  • Class명과 같아야 한다.
  • 객체가 생성될 때 딱 한 번 호출된다.
  • 생성자도 오버로딩이 가능하다.
  • 상속이 되지 않는 유일한 멤버 메소드이다.

각 주제에 대해 알아보았다.

조금 헷갈렸던 개념들인데, 이제야 정리가 되는 것 같다.

끝!


출처

http://www.tcpschool.com/java/java_class_intro
https://sowon-dev.github.io/2020/06/30/200701javai/

profile
책상 위에 있는 춘식이 피규어가 귀엽다.

0개의 댓글