Java에서 생성자 오버로딩이란 무엇입니까?
게시 됨: 2022-11-16웹 애플리케이션에 대한 수요는 전 세계적으로 증가하고 있습니다. Java는 대규모 프로그래밍이 필요한 개발자에게 선호되는 선택으로 부상했습니다. Java의 인기는 동적 기능, 사용자 친화적인 인터페이스 및 주요 운영 체제와의 높은 호환성에 달려 있습니다. 언어에는 풍부한 API가 있습니다. Java의 또 다른 장점은 강력한 커뮤니티 지원과 우수한 문서 서비스를 제공한다는 것입니다. Java에서 제공하는 개발 도구 제품군을 잊지 마십시오.
Java에서 생성자란 무엇을 의미합니까?
Java의 생성자는 주로 객체의 상태를 초기화하는 데 사용됩니다. 메소드와 유사하게 생성자는 객체가 생성될 때 실행되어야 하는 명령 또는 명령문 그룹으로 구성됩니다.
Java에서 생성자가 필요한 이유는 무엇입니까?
Java에서 압축 장치의 필요성을 설명하기 위해 상자의 예를 들어 보겠습니다. 상자를 클래스로 간주하십시오. 상자에는 길이, 너비 및 높이와 같은 다양한 변수가 있습니다. 개체를 생성할 때가 되면 상자 클래스에는 크기에 대해 정의된 값이 없습니다. 새 개체가 생성되면 생성자는 프로그래머가 전달한 다양한 매개 변수 또는 기본 Java 생성자를 사용하여 두 가지 방법으로 클래스 변수에 값을 할당합니다.
Java에서 생성자 오버로딩이란 무엇을 의미합니까?
생성자 오버로딩에서는 동일한 클래스의 여러 생성자가 정의됩니다. 그러나 모든 생성자는 고유한 서명 또는 특정 입력 매개변수를 가져야 합니다. Java 의 생성자 오버로드 프로그램을 사용하면 단일 클래스가 전달된 인수 목록에 따라 다른 생성자를 둘 이상 가질 수 있습니다. 오버로드된 모든 생성자는 다양한 클래스 작업을 수행하는 데 사용됩니다.
Java 컴파일러는 매개변수 유형, 매개변수 목록 및 입력 매개변수의 양을 기반으로 오버로드된 생성자를 식별합니다. 오버로드된 생성자가 다른 서명을 가지고 있다는 것은 매우 명백합니다. 생성자의 서명에는 매개변수 유형과 이름이 포함됩니다. 두 클래스 생성자의 서명이 동일한 경우 때때로 모호성 문제가 발생합니다. 이러한 상황에서 컴파일러는 둘을 구분할 수 없습니다. 따라서 오류 알림을 표시합니다. 때로는 서명이 다른 오버로드된 생성자가 있습니다. 이 경우 컴파일러는 다른 개체의 입력 매개 변수 수에 따라 컨덕터가 호출됨을 확인합니다.
생성자 오버로딩의 예
이 예제에서는 StudentData 클래스의 두 개체를 만들려고 합니다 . 한 개체는 기본 생성자를 사용하고 다른 개체는 매개 변수가 있는 생성자를 사용합니다. 두 생성자에는 별도의 초기화 코드가 있습니다. 서로 다른 2 목적을 위해 서로 다른 2 초기화 코드를 사용하여 모든 숫자의 생성자를 생성할 수 있습니다.
StudentData.java
클래스 StudentData
{
개인 int stuID;
개인 문자열 stuName;
개인 인턴십 ;
학생 데이터 ()
{
//기본 생성자
stuID = 100 ;
stuName = "신입생" ;
스튜어지 = 18 ;
}
StudentData ( int num1, String str, int num2)
{
//파라미터화된 생성자
stuID = 숫자1;
스튜이름 = str;
stuAge = num2;
}
//게터 및 세터 메서드
공공 int getStuID() {
StuID를 반환 합니다.
}
공공 무효 setStuID( int stuID) {
이 .stuID = stuID;
}
공개 문자열 getStuName() {
stuName을 반환 합니다.
}
공공 무효 setStuName( 문자열 stuName) {
이 .stuName = stuName;
}
공개 int getStuAge() {
반환 스튜어지;
}
공공 무효 setStuAge( int stuAge) {
이 .stuAge = stuAge;
}
공개 정적 무효 메인( 문자열 인수[])
{
//이 개체 생성은 기본 생성자를 호출합니다.
StudentData myobj = 새 학생 데이터 ();
시스템 . out .println( "학생 이름: " +myobj.getStuName());
시스템 . out .println( "학생 연령: " +myobj.getStuAge());
시스템 . out .println( "학생 ID: " +myobj.getStuID());
/*이 객체 생성은 매개변수화된
* 생성자 StudentData(int, String, int)*/
StudentData myobj2 = new StudentData ( 555 , "Chaitanya" , 25 );
시스템 . out .println( "학생 이름: " +myobj2.getStuName());
시스템 . out .println( "학생 연령: " +myobj2.getStuAge());
시스템 . out .println( "학생 ID: " +myobj2.getStuID());
}
}
산출:
학생 이름 : 신입생 _ _
학생 연령 : 18 _
학생 ID : 100 _
학생 이름 : Chaitanya _
학생 나이 : 25 _
학생 ID : 555 _
참조: https://beginnersbook.com/2013/05/constructor-overloading/
세계 최고의 대학에서 소프트웨어 개발 과정을 온라인으로 배우십시오. PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 취득하여 경력을 빠르게 쌓으십시오.
생성자 오버로딩에서 this()의 기능 이해
공개 클래스 OverloadingExample2
{
개인 int rollNum;
과부하예제2 ()
{
롤수 = 100 ;
}
OverloadingExample2 ( int rnum)
{
이 ();
/*this()는 기본값을 호출하는 데 사용됩니다.
* 매개변수화된 생성자의 생성자.
* 항상 첫 번째 문이어야 합니다.
* 생성자 본체 내부.
*/
rollNum = rollNum+ rnum;
}
공개 int getRollNum() {
롤 넘버 반환 ;
}
공공 무효 setRollNum( int rollNum) {
이 .rollNum = rollNum;
}
공개 정적 무효 메인( 문자열 인수[])
{
OverloadingExample2 obj = 새 OverloadingExample2 ( 12 );
시스템 . 출력 .println(obj.getRollNum());
}
}
산출
112
참조: https://beginnersbook.com/2013/05/constructor-overloading/
귀하를 위한 upGrad의 독점 소프트웨어 개발 웨비나 –
귀하를 위한 upGrad의 독점 소프트웨어 개발 웨비나 –
SAAS 비즈니스 – 무엇이 그렇게 다른가요?
위에서 언급한 프로그램에서 매개변수화된 생성자는 개체 생성 중에 호출됩니다. 이 ()가 매개 변수가 있는 생성자에 배치되면 기본 생성자가 호출됩니다. 변수 rollNum 이 초기화됩니다.
또 다른 예:
생성자를 구현하지 않으면 Java 컴파일러는 컴파일 중에 기본 생성자를 코드에 삽입합니다. 그러나 생성자를 구현할 때 컴파일러는 이 작업을 수행하지 않습니다. 이 점을 더 잘 이해하려면 여기의 예를 참조하십시오.
공개 클래스 데모
{
개인 int rollNum;
//여기서는 인수 없는 생성자를 정의하지 않습니다.
데모 ( 정수 번호)
{
rollNum = rollNum+ rnum;
}
//Getter 및 Setter 메소드
공개 정적 무효 메인( 문자열 인수[])
{
//이 문은 인수가 없는 생성자를 호출합니다.
데모 객체 = 새 데모 ();
}
}
산출:
스레드 "main" java.lang 의 예외 . 오류 : 해결되지 않은 컴파일
문제: 생성자 Demo ( ) 가 정의되지 않았습니다 .
소프트웨어 엔지니어링에 대한 인기 코스 및 기사
인기 프로그램 | |||
소프트웨어 개발의 임원 PG 프로그램 - IIIT B | 블록체인 인증 프로그램 - PURDUE | 사이버 보안 인증 프로그램 - PURDUE | 컴퓨터 과학 MSC - IIIT B |
기타 인기 기사 | |||
미국의 클라우드 엔지니어 급여 2021-22 | 미국의 AWS 솔루션 아키텍트 급여 | 미국의 백엔드 개발자 급여 | 미국 프론트엔드 개발자 연봉 |
미국의 웹 개발자 급여 | 2022년 스크럼 마스터 인터뷰 질문 | 2022년 사이버 보안 분야에서 경력을 시작하는 방법은 무엇입니까? | 공대생을 위한 미국 취업 옵션 |
생성자 오버로딩 사용 설명
생성 오버로딩 을 사용 하면 객체가 다양한 방식으로 특정 클래스를 생성할 수 있습니다. 따라서 이 개념은 프로그래머의 요구 사항에 따라 다양한 Java 프로그램에서 사용됩니다. Java에서 생성자 오버로드를 사용하면 다른 데이터 유형으로 개체를 초기화할 수 있습니다.
예를 들어 세 개의 클래스 인스턴스 변수가 있는 개체가 있다고 가정합니다. 두 번째 인스턴스 변수에는 특정 값을 할당하고 다른 변수에는 기본값을 할당해야 합니다. 구성 클래스의 서로 다른 서명에 따라 여러 생성자를 선언하여 이를 수행합니다.
Java에서 생성자 오버로딩의 이점
Java 프로그램을 작성하는 동안 생성자 오버로드 를 사용하는 주요 이점은 다음과 같습니다.
- 생성자 오버로드를 사용하여 다양한 방법으로 클래스 인스턴스를 초기화할 수 있습니다.
- 생성자 오버로딩을 사용하면 정적 다형성을 달성할 수 있습니다.
- 오버로드된 각 생성자는 지정된 목적을 위해 서로 다른 작업을 수행합니다.
- Java의 생성자 오버로드는 고유한 특정 서명을 사용하여 단일 클래스에서 여러 생성자를 정의하는 프로세스를 원활하게 합니다.
결론
이 기사에서는 Java의 생성자 오버로딩 프로그램 과 그 이점에 대해 설명합니다. 오버로드된 생성자가 있는 경우 서명이 다른 클래스의 생성자가 둘 이상 있습니다. 컴파일을 위해 모든 생성자는 서로 다른 매개변수 목록을 가져야 합니다. 매개변수 목록은 인수의 유형과 순서로 구성됩니다. 클래스에서 동일한 매개변수 목록을 가진 두 개의 생성자를 갖는 것은 불가능합니다.
소프트웨어 개발자 및 기술 전문가를 위한 upGrad의 풀 스택 개발 인증 프로그램
소프트웨어 개발 업계에 처음 입문했든 숙련된 기술을 찾고 있든 관계없이 관련 과정을 통해 새로운 기술과 기술을 배워야 합니다. 풀 스택 개발은 그러한 과정 중 하나입니다.
upGrad 는 IT 전문가, 소프트웨어 개발자, 기술 지원 전문가, 분석가 및 소프트웨어 개발 분야에 뛰어들고자 하는 최근 졸업생을 위해 독점적으로 설계된 관심 있는 지원자에게 소프트웨어 개발 부문 임원 프로그램을 제공합니다.
이 과정을 통해 JavaScript에 대해 고도로 숙련되고 마이크로 서비스 및 MERN 스택을 배우게 됩니다. 거의 10개 이상의 프로그래밍 언어 및 도구 학습과 함께 Facebook, Walmart, Netflix 및 LinkedIn에서 광범위하게 사용되는 다양한 도구도 배우게 됩니다. 이 프로그램은 Cloud Labs에서 몰입형 학습 경험을 제공합니다.
이 인증 프로그램을 수강하는 학생은 Capstone 프로젝트에서 웹 애플리케이션을 설계, 개발, 테스트 및 배포할 수 있는 기회를 갖게 됩니다. 학습자는 이러한 혜택을 통해 업계 최고의 멘토와 일대일 커리어 멘토십 세션을 받습니다. 과정을 수료하면 풀스택 개발자, UI 개발자, 프론트엔드, 백엔드 개발자로 활동할 수 있습니다.
과정에 등록하려면 지금 신청하세요 !
Java에서 생성자의 용도는 무엇입니까?
Java의 생성자는 개체를 초기화하고 클래스의 개체를 만드는 데 사용됩니다. 객체 기능 및 속성에 대한 초기 값을 설정할 수도 있습니다. 생성자는 메서드나 프로세스와 유사한 코드 블록과 같습니다.
정적 클래스에 대해 생성자 오버로드가 발생합니까?
흥미롭게도 정적 전도체는 과부하되거나 상속될 수 없습니다. 정적 컨덕터가 자동으로 호출됩니다. 프로그램에서 정적 생성자가 실행될 때 사용자는 제어할 수 없습니다.
생성자 오버로딩과 메소드 오버로딩 사이에 차이가 있습니까?
메소드는 특정 클래스 기능을 수행하는 데 사용되는 반면 생성자는 객체를 초기화합니다. 개체를 만들면 생성자가 암시적으로 호출됩니다. 그러나 메서드는 사용자가 명시적으로 호출해야 합니다.