Java Class Instance Constructor 쉽게 이해하자

서동희·2023년 10월 13일
0
post-thumbnail

"클래스를 정의한다"는 프로그래밍에서 클래스를 만들고 설계한다는 의미입니다.

클래스는 객체 지향 프로그래밍에서 중요한 개념입니다

"객체지향"이라는 말을 가볍게 정리하겠습니다

객체 지향 프로그래밍(OOP, Object-Oriented Programming)
객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심이 됩니다.

객체(object)란 간단히 이야기하자면 실생활에서 우리가 인식할 수 있는 사물로 설명할 수 있습니다.

이러한 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍이 바로 객체 지향 프로그래밍입니다.

이때 객체를 만들어 내기 위한 설계도와 같은 개념을 클래스(class)라고 합니다.
데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶어서 표현합니다.


class

클래스는 실제로 존재하는 객체의 특징과 기능을 정의하는 설계도와 같다고 생각할 수 있습니다.
이 설계도에는 클래스의 멤버 변수(Fields)와 멤버 메서드(Method)가 포함됩니다.

멤버변수와 멤버메서드... 간단히 정리하고 넘어갑시다

  • 멤버 변수 (Fields):

멤버 변수는 클래스의 상태나 데이터를 나타냅니다. 즉, 클래스가 가지는 속성이나 정보를 나타내는 변수들을 의미합니다.
예를 들어, 자동차 클래스에서 브랜드, 모델, 최고 속도는 멤버 변수로 정의될 수 있습니다.

  • 멤버 메서드 (Methods):

멤버 메서드는 클래스가 수행하는 동작이나 기능을 나타냅니다. 즉, 클래스가 할 수 있는 행동이나 작업을 나타내는 함수들을 의미합니다.
예를 들어, 자동차 클래스에서 주행, 가속, 감속은 멤버 메서드로 정의될 수 있습니다.

클래스는 객체의 상태를 나타내는 멤버 변수(field)와 객체의 행동을 나타내는 멤버 매서드(method)로 구성됩니다.

즉, field란 클래스에 포함된 variable를 의미합니다.
또한, method 란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있습니다.

실생활에 간단한 예를 들어보면

  • 자동차 클래스 (Car class):

    	멤버 변수: 브랜드, 모델, 최고 속도, 연료량 등
    	멤버 메서드: 주행, 가속, 감속, 연료 충전 등
  • 도서관 회원 클래스 (LibraryMember class):

    	멤버 변수: 이름, 나이, 회원 번호, 대출 중인 도서 목록 등
    	멤버 메서드: 도서 대출, 도서 반납, 대출 내역 확인 등
  • 음악 플레이어 클래스 (MusicPlayer class):

    	멤버 변수: 현재 재생 중인 곡, 재생 목록, 볼륨 등
    	멤버 메서드: 음악 재생, 일시 정지, 재생 목록 추가 등
  • 주문 시스템 클래스 (OrderSystem class):

    	멤버 변수: 주문 번호, 주문 목록, 결제 정보 등
    	멤버 메서드: 주문 추가, 결제, 주문 확인 등

instance

자바에서 클래스를 사용하기 위해서는 우선 해당 클래스 타입의 객체(object)를 선언해야 합니다.
이렇게 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스 화라고 합니다.
또한, 이렇게 선언된 해당 클래스 타입의 객체를 인스턴스(instance)라고 합니다.
즉, 인스턴스란 메모리에 할당된 객체를 의미합니다.

자바에서는 하나의 클래스로부터 여러 개의 인스턴스를 생성할 수 있습니다.
이렇게 생성된 인스턴스는 독립된 메모리 공간에 저장된 자신만의 필드를 가질 수 있습니다.
하지만 해당 클래스의 모든 메소드(method)는 해당 클래스에서 생성된 모든 인스턴스가 공유하게 됩니다.

자바의 간단한 문법

접근제어자 반환타입 메소드이름(매개변수목록) { // 선언부

    // 구현부

}
  1. 접근 제어자 : 해당 메소드에 접근할 수 있는 범위를 명시합니다.

  2. 반환 타입(return type) : 메소드가 모든 작업을 마치고 반환하는 데이터의 타입을 명시합니다.

  3. 메소드 이름 : 메소드를 호출하기 위한 이름을 명시합니다.

  4. 매개변수 목록(parameters) : 메소드 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시합니다.

  5. 구현부 : 메소드의 고유 기능을 수행하는 명령문의 집합입니다.


Constructor 생성자

생성자는 객체를 만들 때 호출되는 특별한 함수입니다.
이 함수는 클래스의 이름과 같습니다.
생성자는 객체를 초기화하고,
객체가 사용될 준비를 합니다.

생성자의 역할:

  • 객체 초기화: 객체를 생성하면서 필요한 초기값을 설정합니다.
  • 멤버 변수(field) 초기화: 객체의 멤버 변수(데이터)를 초기값으로 설정합니다.
public class Person {
    private String name;
    private int age;

    // 생성자
    public Person(String initialName, int initialAge) {
        name = initialName;  // 이름 초기화
        age = initialAge;    // 나이 초기화
    }

    // 객체의 정보 출력
    public void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }
}

// 사용 예시
public class Main {
    public static void main(String[] args) {
        // 객체 생성과 동시에 생성자 호출하여 초기화
        Person person1 = new Person("Alice", 30);
        Person person2 = new Person("Bob", 25);

        // 객체 정보 출력
        person1.displayInfo();  // 출력: Name: Alice, Age: 30
        person2.displayInfo();  // 출력: Name: Bob, Age: 25
    }
}


생성자를 사용하면 객체를 생성할 때 필요한 데이터를 바로 설정할 수 있습니다. 위 예시에서는 Person 클래스의 생성자를 사용하여 name과 age를 초기화했습니다. 이러한 초기화는 객체를 사용할 때 중요한 역할을 합니다.

profile
백엔드개발자

0개의 댓글