Java

Java 생성자

김한토 2024. 8. 26. 16:48
반응형

생성자(Constructor)

: 생성자는 객체가 생성될 때 자동으로 호출되는 특수한 메서드이다. 주로 객체의 초기 상태를 설정하는 데 사용된다. 생성자는 클래스 이름과 동일하며, 반환 타입이 없다. 

 

https://hantoluvcoding.tistory.com/53

 

Java 변수 기본형 참조형

변수란 ? 데이터를 저장할 수 있는 메모리 공간을 의미한다. 변수는 특정한 데이터 타입을 가지며, 이 데이터는 프로그램에서 사용될 수 있다. 변수를 사용하면 데이터를 쉽게 관리하고 조작할

hantoluvcoding.tistory.com

 

자세한 내용 참조

 

this

: this는 현재 객체를 참조하는 키워드이다. 즉, 어떤 클래스의 메서드나 생성자 안에서 this를 사용하면 그 메서드나 생성자를 호출한 객체를 가리킨다. this는 필드와 매개변수를 구분하고 현재 객체의 메서드 호출에서 사용한다. 

 

객체를 참조한다?

: 현재 클래스의 인스턴스를 가리키는 것을 의미한다. 클래스를 통해 객체를 생성하면, 그 객체는 메모리에 저장되고, 우리는 이를 통해 해당 객체의 속성(필드)이나 메서드에 접근할 수 있다. 

 

필드와 매개변수를 구분한다?

: 필드와 매개변수는 이름이 같을 수 있는데, 이럴 경우 this를 사용하여 현재 객체의 필드를 명확히 구분할 수 있다. 

 

class Person {
    String name; // 필드

    사람(String name) { // 매개변수
        this.name = name; // this.이름은 필드, 이름은 매개변수
    }
}

 

기본 생성자

: 기본 생성자는 매개변수가 없는 생성자를 의미한다. Java에서 클래스가 정의될 때, 만약 개발자가 생성자를 정의하지 않으면, 컴파일러가 자동으로 기본 생성자를 추가해준다. 기본 생성자는 객체를 생성할 때 기본 값으로 필드를 초기화하는 역할을 한다. 

 

https://hantoluvcoding.tistory.com/57

 

Java 오버로딩 & 오버라이딩

오버로딩(Overloading): 동일한 이름의 메서드를 여러개 정의하되,  매개변수의 타입이나 개수, 순서를 다르게 설정하는 것을 말한다. 같은 클래스 내에서 사용할 수 있다는 특징이 있다. 같은 기능

hantoluvcoding.tistory.com

 

오버로딩(Overloading)

: 오버로딩은 같은 이름을 가진 메서드나 생성자가 여러 개 정의되는 것을 말한다. 메서드 오버로딩을 통해 같은 기능을 수행하지만, 매개변수의 수나 타입이 다르게 정의할 수 있다. 이를 통해 코드의 가독성을 높이고, 다양한 방식으로 메서드를 호출할 수 있다. 

 

class 계산기 {
    // 두 정수를 더하는 메서드
    int 더하기(int a, int b) {
        return a + b;
    }

    // 세 정수를 더하는 메서드
    int 더하기(int a, int b, int c) {
        return a + b + c;
    }

    // 두 실수를 더하는 메서드
    double 더하기(double a, double b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        계산기 calc = new 계산기();
        System.out.println(calc.더하기(1, 2)); // 3
        System.out.println(calc.더하기(1, 2, 3)); // 6
        System.out.println(calc.더하기(1.5, 2.5)); // 4.0
    }
}

 

this()

: 현재 클래스의 다른 생성자를 호출하는데 사용된다. 한 생성자에서 같은 클래스의 다른 생성자를 호출하는 것을 의미한다. 코드 중복을 줄이고, 객체를 초기화하는 과정을 간소화 할 수 있따. 

class Person {
    String name;
    int age;

    // 기본 생성자
    Person() {
        this("이름 없음", 0); // 다른 생성자를 호출
    }

    // 매개변수가 있는 생성자
    Person(String name, int age) {
        this.name = name; // 필드 초기화
        this.age = age; // 필드 초기화
    }

    void hello() {
        System.out.println("안녕하세요, 제 이름은 " + name + "이고, 나이는 " + age + "세입니다.");
    }
}

public class Main {
    public static void main(String[] args) {
        Person p1 = new Person(); // 기본 생성자 호출
        p1.hello(); // "안녕하세요, 제 이름은 이름 없음이고, 나이는 0세입니다." 출력

        Person p2 = new Person("김한토", 25); // 매개변수가 있는 생성자 호출
        p2.hello(); // "안녕하세요, 제 이름은 김한토고, 나이는 25세입니다." 출력
    }
}

 

반응형

'Java' 카테고리의 다른 글

Java 패키지  (0) 2024.08.27
Java 오버로딩 & 오버라이딩  (0) 2024.08.27
Java 컬렉션  (0) 2024.08.26
Java 변수 기본형 참조형  (0) 2024.08.26
자바 기초 자료 모음  (1) 2024.08.09