Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

노승현

생성자란? 본문

JAVA/Mentor JAVA

생성자란?

nsh95 2024. 1. 1. 19:52

 

 

자바(Java)에서 생성자(Constructor)는 객체를 생성할 때 호출되는 특별한 메서드입니다. 생성자는 클래스의 인스턴스를 초기화하고 객체의 상태를 설정하는 역할을 합니다. 일반적으로 클래스 이름과 동일하며, 반환 값이 없습니다.

 

 

생성자의 호출 위치

 

일반 메서드들과는 다르게, 생성자는 호출할 수 있는 곳이 정해져 있습니다.

생성자는 클래스를 기반으로 객체를 생성할 때, 객체의 초기화를 담당하는 역할을 하므로 객체를 생성할 때만 호출할 수 있습니다.

 

 

생성자 호출 방법

 

생성자를 호출할 때는 new 키워드를 함께 사용합니다.

 

클래스명 객체명 = new 클래스명();

 

 

기본 생성자

 

자바의 모든 클래스에는 하나 이상의 생성자가 정의되어 있어야 합니다. 클래스를 생성하면서 개발자가 직접 생성자를 선언하지 않았지만, 자바 컴파일러가 기본 생성자를 자동으로 제공해 줍니다. 다만, 컴파일러의 눈에만 보일 뿐 우리가 보는 코드에는 생략되어 있습니다.

 

public class MyClass {
    private int myVariable;

    // 기본 생성자
    public MyClass() {
        // 객체를 초기화하거나 기본 상태로 설정하는 코드
        myVariable = 0;
    }
}

 

 

 

생성자 선언 이유

 

생성자는 객체를 생성함과 동시에 객체를 초기화할 수 있습니다. 생성자를 통해 객체를 초기화한다는 것은 필드와 메서드를 호출하는 등

객체를 사용하기 위해 객체를 메모리에 올린다는 의미가 있습니다.

우리는 생성자를 통해서 객체를 메모리에 올림과 동시에, 더 나아가 객체 멤버에 접근이 가능하므로 일반 메서드처럼 객체 멤버의 데이터를 초기화할 수 있습니다. 우리는 이러한 이유로 직접 생서자를 선언하여 사용합니다.

메소드를 호출하면서 매개변수를 통해 값을 전달했던 것처럼, 생성자 역시 매개변수를 통해 값을 전달할 수 있습니다.

 

 

생성자 오버로딩

오버로딩

 

메소드 오버로딩(Method Overloading)은 자바에서 하나의 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 기법을 말합니다. 오버로딩은 메소드의 이름은 같지만 매개변수의 타입, 개수, 또는 순서가 다른 여러 메소드를 정의하여 다양한 상황에서 동일한 이름의 메소드를 사용할 수 있도록 합니다.

 

오버로딩은 다음과 같은 특징을 가집니다:

  1. 메소드 이름이 동일해야 합니다: 오버로딩된 메소드들은 이름이 동일해야 합니다.
  2. 매개변수의 타입, 개수, 순서가 달라야 합니다: 오버로딩된 메소드들은 매개변수의 타입, 개수, 또는 순서가 서로 달라야 합니다.
  3. 반환 타입은 오버로딩에 영향을 주지 않습니다: 반환 타입이 다르더라도 오버로딩이 가능합니다.
public class OverloadingExample {
    // 정수 두 개를 더하는 메소드
    public int add(int a, int b) {
        return a + b;
    }

    // 실수 두 개를 더하는 메소드
    public double add(double a, double b) {
        return a + b;
    }

    // 문자열 두 개를 연결하는 메소드
    public String add(String a, String b) {
        return a + b;
    }
}

 

 

this:

  • this는 현재 객체를 나타내는 참조 변수입니다.
  • 클래스 내부에서 인스턴스 변수와 메소드를 참조할 때 사용됩니다.
  • 메소드 내에서 로컬 변수와 멤버 변수의 이름이 같을 때, this를 사용하여 멤버 변수를 구별합니다.
public class MyClass {
    private int myVariable;

    public void setMyVariable(int myVariable) {
        // 로컬 변수와 멤버 변수 이름이 같을 때 this를 사용하여 멤버 변수를 지칭
        this.myVariable = myVariable;
    }
}

 

 

 

this():

  • this()는 같은 클래스 내의 다른 생성자를 호출하는 데 사용됩니다. 즉, 한 생성자에서 다른 생성자를 호출할 때 사용합니다.
  • 생성자 오버로딩이나 생성자에서 초기화 코드를 공통으로 묶을 때 편리하게 사용할 수 있습니다.
public class MyClass {
    private int myVariable;

    // 기본 생성자
    public MyClass() {
        this(0); // 다른 생성자를 호출하여 초기화
    }

    // 매개변수를 받는 생성자
    public MyClass(int myVariable) {
        this.myVariable = myVariable;
    }
}

'JAVA > Mentor JAVA' 카테고리의 다른 글

다형성과 타입 변화  (0) 2024.01.06
상속이란?  (0) 2024.01.02
메서드란?  (0) 2023.12.28
클래스  (0) 2023.12.25
배열이란?  (0) 2023.12.24