Java 및 객체 지향 프로그래밍[#2]

요약



이전 기사에서는 객체 지향 프로그래밍, 객체 및 클래스와 클래스 멤버에 액세스하는 방법에 대해 설명했습니다. 또한 첫 번째 기사에서 이러한 개념의 예를 보았습니다.

오늘의 기사에서는 생성자, 유형 및 사용 방법을 살펴보겠습니다. 이것은 예제로 뒷받침될 것입니다.

생성자란 무엇입니까?



Java의 생성자는 클래스의 개체가 생성될 때 호출되는 메서드와 유사합니다.

특히 생성자는 클래스와 동일한 이름을 가지며 반환 유형이 없습니다.
Why constructors don't have return types .

이것을 보여주는 예;

class Exam {
    Exam() {
       // Constructor body
   }
}


이 경우 Exam()은 생성자이며 클래스와 이름이 같고 반환 유형이 없습니다.

NB: 기본적으로 클래스가 생성될 때 생성자가 있습니다.

class Exam {
  private String name;

  // constructor
  Exam() {
    System.out.println("The constructor is called:");
    type = "Computer";
  }

  public static void main(String[] args) {

    // constructor is invoked while
    // creating an object of the Main class
    Exam obj = new Exam();
    System.out.println("The type is " + obj.type);
  }
}


산출:

The constructor is called:
The type is Computer


위의 데모에서 우리가 만든 생성자는 Exam()이고 그 안에서 유형 변수의 값을 초기화하고 있습니다.
Exam 클래스에 대한 개체 생성에 유의하십시오.

Exam obj = new Exam();


유형 변수의 값이 초기화되고 프로그램이 유형 변수의 값을 Computer로 인쇄합니다.

생성자의 유형



세 가지 유형의 생성자가 있습니다.

1. Java No-Arg 생성자



메소드와 같은 Java 생성자는 매개변수(인수)를 포함하거나 포함하지 않을 수 있습니다.

생성자는 매개변수를 허용하지 않는 경우 인수가 없는 생성자라고 합니다.

예 1:

Constructor() {
    // body of the constructor
}


예 2:

class Exam {

  int i;

  // constructor with no parameter
  private Exam() {
    i = 5;
    System.out.println("Constructor is called");
  }

  public static void main(String[] args) {

    // calling the constructor without any parameter
    Exam obj = new Exam();
    System.out.println("Value of i: " + obj.i);
  }
}


산출:




Constructor is called
Value of i: 5


위의 예에서는 생성자 Exam()을 만들었습니다.
생성자는 매개변수를 허용하지 않기 때문에 인수 없는 생성자라고 합니다.

또한 생성자가 비공개로 선언되어 클래스 외부에서 액세스할 수 없음을 의미합니다. 따라서 개인 생성자를 사용하여 클래스 외부에서 객체를 생성하는 것은 금지됩니다.

2. 매개변수화된 생성자



Java 생성자는 하나 이상의 매개변수를 허용할 수도 있습니다. 이러한 생성자를 매개 변수가 있는 생성자라고 합니다.
예시:

class Exam {

  String languages;

  // constructor accepting single value
  Exam(String lang) {
    languages = lang;
    System.out.println(languages + " Programming Language");
  }

  public static void main(String[] args) {

    // call constructor by passing a single value
    Exam obj1 = new Exam("Java");
    Exam obj2 = new Exam("Python");
    Exam obj3 = new Exam("C");
  }
}


산출:




Java Programming Language
Python Programming Language
C Programming Language


이 경우 Main()이라는 생성자는 단일 매개 변수를 사용합니다.
따라서 식은 단일 값을 생성자에 전달합니다.

Exam obj1 = new Exam("Java");


3. 자바 기본 생성자



생성자를 만들지 않으면 Java 컴파일러는 프로그램 실행 중에 인수가 없는 생성자를 자동으로 생성하므로 기본 생성자가 됩니다.

class Exam {

  int a;
  boolean b;

  public static void main(String[] args) {

    // A default constructor is called
    Exam obj = new Exam();

    System.out.println("Default Value:");
    System.out.println("a = " + obj.a);
    System.out.println("b = " + obj.b);
  }
}


산출:




a = 0
b = false


이 경우 생성자를 생성하지 않았습니다. 결과적으로 Java 컴파일러는 기본 생성자를 생성합니다.

자바 생성자 오버로딩




class Exam {

  String language;

  // constructor with no parameter
  Exam() {
    this.language = "Java";
  }

  // constructor with a single parameter
  Exam(String language) {
    this.language = language;
  }

  public void getName() {
    System.out.println("Programming Langauage: " + this.language);
  }

  public static void main(String[] args) {

    // call constructor with no parameter
    Exam obj1 = new Exam();

    // call constructor with a single parameter
    Exam obj2 = new Exam("Python");

      obj1.getName();
      obj2.getName();
  }
}


산출:




Programming Language: Java
Programming Language: Python


이 경우 이 예제에는 Exam() 및 Exam(String language)라는 두 개의 생성자가 있습니다. 여기서 두 생성자는 서로 다른 값으로 변수 언어의 값을 초기화합니다.

NB: 클래스의 변수를 지정하기 위해 이 키워드를 사용했습니다. 이 키워드를 자세히 읽어보세요about.

객체 지향 프로그래밍에 대한 더 깊고 자세한 설명을 보려면 이 멋진 재생 목록을 확인하세요.
쿠날 쿠슈와하.

, github에서 저에게 연락해 주시면 감사하겠습니다.

좋은 웹페이지 즐겨찾기