>  기사  >  Java  >  자바의 생성자

자바의 생성자

WBOY
WBOY원래의
2024-08-30 15:26:34312검색

Java의 생성자는 클래스의 객체를 초기화하는 데 사용되는 특별한 유형의 메소드입니다. 생성자는 클래스의 객체 생성 시 호출됩니다. 메소드와 마찬가지로 코드 세트를 보유하고 있지만 메소드와는 상당히 다릅니다. 생성자는 Java 클래스와 이름이 동일하지만 반환 유형이 없습니다. Java에서는 객체를 생성하는 데 사용되는 new() 키워드로, 새 객체가 생성될 때마다 하나의 생성자가 호출됩니다. 생성자는 메모리가 객체에 할당된 후에 호출됩니다. 객체 생성 시 생성자는 클래스 변수의 값을 기본값이나 원하는 값으로 초기화하는 데 사용됩니다.

사용자가 프로그램에서 생성자를 생성하지 않으면 Java 자체에서 기본 생성자를 생성하고 숫자 기본값은 0, 문자(' ') 및 참조 변수의 경우와 같이 다른 개체에 기본값을 할당합니다. 널. 메서드와 마찬가지로 생성자도 오버로드될 수 있습니다. 즉, 모든 생성자가 고유한 시그니처를 갖고 있는 경우 단일 클래스에 여러 생성자가 있을 수 있습니다.

광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사

Java 생성자의 기본 구문은 다음과 같습니다.

구문:

public class Student() // name of the class
{
. . . .
. . . .
. . . .
Student() // this is Constructor with the same name of class
{
. . .
. . .
}
new Student(); // object creation and value initialization
}

위 구문에서 Student()는 생성자의 이름으로 클래스 이름과 동일하며 Java의 객체는 new 키워드를 사용하여 생성됩니다.

Java에서 생성자는 어떻게 작동하나요?

Java에서 생성자의 작동을 이해하기 위해 아래 예제를 살펴보겠습니다.

코드:

public class Student()
{
int rollno;
String name;
Student(int rollno, String name)
{
this.rollno = rollno;
this.name = name;
}
public static void main(String[] args)
{
Student st = new Student(12, 'Ananya');
System.out.println("Student name = "+ st.name + "Student rollno = "+st.rollno);
}
}

출력:

자바의 생성자

위의 예에는 인스턴스 변수(클래스 변수)가 있습니다. ​roll no ​및 ​name ​및 ​st ​Student 클래스에서 생성된 개체의 이름입니다. 객체가 생성되면 생성자 Student를 호출하고 롤 번호 값이 12이고 이름이 'Ananya'인 클래스 변수를 초기화합니다. 그렇지 않으면 Rollno의 경우 0, 이름의 경우 null과 같은 기본값이 변수에 할당됩니다. 따라서 값을 할당하고 인쇄한 후 학생 이름은 Ananya로, 학생 롤 번호는 12로 인쇄됩니다.

Java의 생성자 유형

Java에는 매개변수를 기반으로 하는 두 가지 유형의 생성자가 있습니다.

1. 매개변수화되지 않음/인수 없음 생성자

​생성자에서 인수를 전달하지 않는 경우 해당 생성자는 매개변수화되지 않거나 인수가 없는 생성자라고 합니다. 프로그래머가 Java 프로그램에서 생성자를 정의하지 않으면 Java 컴파일러 자체가 기본 생성자라고 하는 생성자를 추가합니다. 이 생성자는 객체에 0, null 등과 같은 기본값을 제공합니다. 기본 생성자는 특별한 유형의 생성자가 아닙니다. 하지만 인수가 없는 생성자의 범주에 속합니다.

예(기본 생성자)

코드:

public class Hello()
{
String name;
void display() //method to display name the value of variables
{
System.out.println("name is" +name);
}
}
public class HelloMain()
{
public static void main(String[] args)
{
Hello h1 = new Hello();
h1.display();
}
}

출력:
자바의 생성자

위의 예에서 이는 프로그래머가 정의한 생성자가 아니므로 컴파일러는 이 프로그램을 다음과 같이 처리합니다.

코드:

public class Hello()
{
String name;
Hello() //default constructor created by compiler
{
name = null
}
void display()
{
System.out.println("name is" +name);
}
}
public class HelloMain()
{
public static void main(String[] args)
{
Hello h1 = new Hello();
h1.display();
}
}
예(매개변수가 없는 생성자)

코드:

public DemoProgram() // class
{
DemoProgram() // constructor with no arguments
{
System.out.println("Hello this is just an example of no-arg constructor");
}
public static void main(String[] args)
{
new DermoProgram();
}
}

출력:

자바의 생성자

위의 예와 같이 생성자 DemoProgram()의 경우 인수가 전달되지 않고 메시지만 인쇄되므로 인수 없는 생성자라고 합니다.

2. 매개변수화된 생성자​

매개변수화된 생성자는 인수나 매개변수를 전달하는 생성자입니다. 이 생성자에서는 객체 생성 시 값이 전달됩니다.

예(매개변수화된 생성자)

코드:

public class Animal()
{
int legs;
String sound;
Animal(int legs, String sound) // parameterized constructor
{
this.legs = legs; // values with get initialize of what is passed while object crea-this.sound = sound; // tion, i.e. (4, “bow bow”)
}
void display() // method to display the values
{
System.out.println("Legs are "+legs+"Sound is "+sound);
}
}
class AnimalPlanet()
{
public static void main(String[] args)
{
Animal an = new Animal(4, "bow bow");
an.display();
}
}

출력:

자바의 생성자

위 예에서는 다리에 값 4가 할당되고 생성자 Animal의 사운드에 "bow bow"라는 문자열이 할당됩니다. 따라서 메소드 표시가 호출되면 두 값이 모두 출력에 인쇄됩니다.

유의사항

  • 프로그래머가 생성했는지 여부에 관계없이 모든 클래스에는 생성자가 있습니다.
  • 생성자 이름은 클래스 이름과 동일해야 합니다.
  • 생성자에는 메소드와 달리 반환 유형이 없습니다.
  • this() 및 super() 키워드는 생성자의 첫 번째 문이어야 합니다.
  • 메서드와 마찬가지로 생성자도 오버로드될 수 있습니다.
  • 생성자는 재정의될 수 없습니다.
  • 한 생성자는 this() 키워드를 사용하여 동일한 클래스의 다른 생성자를 호출할 수 있습니다.
  • 액세스 지정자/수정자는 클래스에서 해당 범위를 선언하기 위해 생성자 이름 앞에 적용할 수 있습니다.
  • Java에서 생성자는 정적, 최종, 추상 및 동기화가 될 수 없습니다.

결론

Java 프로그래밍 언어를 사용할 때 생성자는 중요한 역할을 합니다. 특정 시나리오에 따라 작동하려면 생성자, 다양한 유형의 생성자, 생성자 연결 및 상위 생성자를 호출하는 데 사용되는 super() 키워드의 전체 개념을 이해해야 합니다. Java에서 생성자를 사용하는 것은 메소드 작업과 마찬가지로 매우 쉽지만 몇 가지 특정 사항을 철저히 익혀야 합니다.

위 내용은 자바의 생성자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.