Java의 생성자 오버로딩: 설명, 이점 및 예

게시 됨: 2021-07-22

목차

자바의 기초

놀랍고 역동적인 기능을 갖춘 Java는 웹 애플리케이션의 대규모 프로그래밍을 위해 개발자들이 가장 많이 찾는 선택 중 하나로 부상했습니다. 다양한 기능을 갖춘 사용자 친화적인 언어입니다. 모든 운영 체제와의 호환성은 풍부한 API로 인해 전 세계적으로 인기를 얻었습니다. 이 언어는 강력한 커뮤니티 지원과 우수한 문서 서비스를 제공합니다. Java에는 견고한 개발 도구 모음이 있습니다.

자바의 생성자

Java의 생성자는 객체의 상태를 초기화하는 데 사용됩니다. 메서드와 마찬가지로 생성자에도 개체가 생성되는 동안 실행될 명령문 또는 명령 그룹이 포함됩니다.

Java에서 생성자가 필요한 이유는 무엇입니까?

상자를 생각해 봅시다. 상자가 클래스라고 가정하면 너비, 길이 및 높이와 같은 여러 변수가 있을 수 있습니다. 개체가 생성될 때 상자 클래스에는 해당 차원에 대해 정의된 값이 없습니다. 새로운 객체를 생성할 때 생성자는 클래스의 변수에 값을 할당합니다. 값 할당은 기본 Java 생성자를 사용하거나 프로그래머가 전달한 매개변수에 의해 명시적으로 수행할 수 있습니다.

생성자는 언제 호출됩니까?

new() 키워드를 사용하여 객체를 생성할 때마다 최소 하나의 생성자가 호출됩니다. 이 생성자는 클래스의 데이터 멤버에 초기 값을 제공합니다. 일반적으로 새로운 객체나 인스턴스가 생성될 때 생성자가 호출됩니다.

자바의 생성자 오버로딩

동일한 클래스의 여러 생성자를 정의하는 프로세스를 생성자 오버로딩이라고 합니다. 그러나 각 생성자는 서로 다른 서명 또는 입력 매개변수를 가져야 합니다. 즉, Java에서 생성자 오버로딩은 단일 클래스에 전달된 인수 목록에 따라 달라지는 둘 이상의 생성자를 가질 수 있도록 하는 기술입니다. 각각의 오버로드된 생성자는 클래스에서 다른 작업을 수행하는 데 사용됩니다.

Java 컴파일러는 매개변수 목록, 매개변수 유형 및 입력 매개변수 수를 기반으로 오버로드된 생성자를 식별합니다. 따라서 오버로드된 생성자는 다른 서명을 가져야 합니다. 생성자의 서명에는 이름과 매개변수 유형이 포함됩니다. 두 개의 클래스 생성자가 동일한 서명을 가질 때 모호성 문제가 발생합니다.

컴파일러는 둘을 구별하지 못하므로 오류 알림을 반환합니다. 시그니처가 다른 생성자가 오버로드되면 컴파일러는 개체의 입력 매개 변수 수에 따라 호출할 생성자를 결정합니다.

생성자 오버로딩 사용

생성 오버로딩은 여러 가지 방법으로 특정 클래스의 객체를 생성할 수 있으므로 프로그래머의 요구에 따라 자바 프로그램에서 가장 많이 사용된다. 생성자 오버로딩을 사용하면 다른 데이터 유형으로 개체를 초기화할 수 있습니다.

세 개의 클래스 인스턴스 변수가 있는 객체를 예로 들어 두 번째 인스턴스 변수에 특정 값을 할당하고 다른 변수에는 기본값을 할당한다고 가정합니다. 이것은 구성 클래스의 다른 서명에 따라 여러 생성자를 선언하여 수행할 수 있습니다.

읽기: Java 경력 구성 요소 및 아키텍처 설명

Java에서 생성자 오버로딩 구현을 위한 예제 코드

Employee 클래스에 3개의 생성자가 있는 프로그램을 생각해 봅시다. 전달된 값에 따라 세 가지 각각이 호출되어 개체를 초기화합니다.

Java에서 이 참조 사용

모든 인스턴스 메서드와 생성자는 현재 개체를 참조하는 데 사용되는 'this'라는 암시적 매개변수를 환영합니다. 현재 개체는 메서드가 호출되는 개체입니다. 'this' 참조를 사용하여 모든 생성자 또는 메서드 내에서 현재 개체를 참조할 수 있습니다. 'this' 참조는 다른 개체 참조와 마찬가지로 메서드 또는 생성자의 본문 내에서 인스턴스 메서드, 생성자 및 변수에 액세스하는 데 사용할 수 있습니다.

'this' 참조가 사용되는 몇 가지 중요한 시나리오는 다음과 같습니다.

  1. 매개변수의 이름이 인스턴스 변수의 이름과 다른 경우
  2. 참조가 현재 객체에 전달되고 매개변수가 다른 메소드에 전달되는 경우
  3. 생성자가 다른 생성자에서 호출될 때.

this() 참조 인수는 이 경우 대상 생성자의 인수와 일치해야 합니다. this() 함수는 생성자 내에서 첫 번째 명령문이어야 합니다. 초기화 루틴의 복잡성과 같은 특수한 경우에는 이 함수를 여러 생성자에서 중복 코드 제거에 사용할 수 있습니다.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

Java에서 생성자 오버로딩의 이점

Java 프로그램을 작성하는 동안 생성자 오버로딩을 사용하는 주요 이점은 다음과 같습니다.

  • 생성자 오버로딩을 통해 정적 다형성을 달성할 수 있습니다.
  • 클래스 인스턴스는 생성자 오버로딩을 사용하여 여러 가지 방법으로 초기화할 수 있습니다.
  • 고유한 서명이 있는 클래스에서 여러 생성자를 정의하는 프로세스를 용이하게 합니다.
  • 오버로드된 각 생성자는 지정된 목적을 위해 다양한 작업을 수행합니다.

요약

  • Java에서 생성자 오버로딩은 인스턴스 클래스에서 둘 이상의 생성자를 사용하는 것을 말합니다. 그러나 각각의 오버로드된 생성자는 서로 다른 서명을 가져야 합니다.
  • 컴파일이 성공하려면 각 생성자가 다른 인수 목록을 포함해야 합니다.
  • 매개변수 목록에는 시퀀스 및 입력 인수 유형이 포함됩니다.
  • 동일한 매개변수 목록을 가진 클래스의 두 생성자는 Java에서 실현 가능하지 않습니다.

전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 소프트웨어 개발 이그 제 큐 티브 PG 프로그램 - 전체 스택 개발 전문화 작업 전문가를 위해 설계되었으며 500 시간 이상의 엄격한 교육을 제공합니다. 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

미래의 직업을 위한 준비

IIIT-B에 의한 소프트웨어 개발의 Executive PG 프로그램 신청