Java

JAVA 기초 정리 - 클래스(Class)와 객체(Object)

chungmani 2026. 5. 19. 17:26

 

1. 클래스(Class)란?

클래스는:

"객체를 만들기 위한 설계도"

라고 볼 수 있다.

 

예를 들면:

  • 클래스 → 붕어빵 틀
  • 객체 → 실제 붕어빵

같은 느낌이다.

 

자바에서는 객체를 만들 때 new 키워드를 사용한다.

그리고 객체를 만드는 과정을:

인스턴스화(객체화)

라고 표현한다.

클래스 생성 예시

package chapter2.clazz;

public class Person {

}

객체 생성

Person personA = new Person();
Person personB = new Person();

여기서:

  • Person → 클래스 이름
  • personA → 객체 변수 이름
  • new Person() → 객체 생성

이다.


2. 클래스 구조

클래스는 크게 3가지 영역으로 구성된다.

class 클래스 {

    // 1. 속성

    // 2. 생성자

    // 3. 기능

}

1) 속성(Field)

속성은 객체의 특징을 의미한다.

변수 선언으로 표현할 수 있다.

속성 예시

public class Person {

    String name;
    int age;
    String address;

}

위 코드에서는:

  • 이름
  • 나이
  • 주소

같은 특징을 속성으로 표현한 것이다.


객체마다 속성값은 다를 수 있다

Person personA = new Person();
Person personB = new Person();

personA.name = "채영";
personB.name = "나경";

객체는 같은 설계도로 만들었어도 서로 다른 값을 가질 수 있다.

즉:

  • personA → 채영
  • personB → 나경

처럼 각각 독립적인 데이터를 가진다.


2) 생성자(Constructor)

생성자는 객체를 만들 때 사용하는 특별한 메서드이다.

쉽게 말하면:

"객체 조립 설명서"

같은 느낌이다.

생성자의 특징

  • 클래스 이름과 동일하다
  • 반환 타입이 없다
  • 여러 개 만들 수 있다

생성자 예시

public class Person {

    String name;
    int age;

    Person(String name, int age) {

        this.name = name;
        this.age = age;

    }
}

this란?

this.name = name;

여기서 this는:

"현재 실행 중인 객체 자기 자신"

을 의미한다.

 

쉽게 말하면:

  • 왼쪽 this.name → 객체의 속성
  • 오른쪽 name → 전달받은 값

이다.


생성자로 객체 만들기

Person personA = new Person("채영", 20);
Person personB = new Person("나경", 20);

이제 객체를 생성할 때 이름과 나이를 함께 전달해야 한다.

 

즉:

생성자 규칙대로 객체를 조립해야 한다.

는 의미이다.


기본 생성자

Person() {}

생성자를 따로 만들지 않으면 자바가 기본 생성자를 자동으로 만들어준다.

하지만 직접 생성자를 만들면 기본 생성자는 사라진다.


3) 기능(Method)

기능은 메서드(Method)로 표현한다.

객체는 단순히 데이터만 저장하는 게 아니라 기능도 가질 수 있다.

기능 예시

int sum(int value1, int value2) {

    int result = value1 + value2;

    return result;

}

메서드 호출

int result1 = personA.sum(1, 2);
int result2 = personB.sum(2, 5);

객체를 통해 메서드를 사용할 수 있다.

 

즉:

객체의 기능을 사용하는 것

이라고 이해할 수 있다.


3. 게터(Getter)

게터는 객체의 속성 값을 가져오는 기능이다.

게터 예시

String getName() {

    return this.name;

}

메서드 이름 앞에 get 을 붙이는 것은 개발자들 사이의 관례라고 한다.

게터 사용하기

String name = personA.getName();

System.out.println(name);

왜 게터를 사용할까?

직접 접근도 가능하다.

personA.name

하지만 게터를 사용하면:

  • 데이터를 안전하게 관리할 수 있고
  • 나중에 수정하기 쉬워지고
  • 객체지향 구조를 유지하기 좋다

고 한다.

실무에서는 게터를 많이 사용한다고 한다.


4. 세터(Setter)

세터는 객체의 속성 값을 변경하는 기능이다.

세터 예시

void setAddress(String address) {

    this.address = address;

}

세터 사용하기

personA.setAddress("부산");

게터 / 세터 정리

Getter

getName()

→ 값을 가져오기

Setter

setAddress()

→ 값을 변경하기


오늘 배운 점

클래스와 객체는 자바에서 가장 핵심적인 개념 중 하나라는 느낌이 들었다.

특히:

  • 클래스 → 설계도
  • 객체 → 실제 생성된 결과물
  • 생성자 → 객체 조립 설명서
  • 메서드 → 객체의 기능

이라는 흐름으로 이해하니까 조금 정리가 되기 시작했다 😊