산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 생성자

자바 생성자

이 자습서에서는 Java 생성자, 해당 유형 및 예제를 통해 사용 방법에 대해 알아봅니다.

생성자란 무엇입니까?

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

자바 메소드와 달리 생성자는 클래스와 이름이 같으며 반환 유형이 없습니다. 예를 들어,

class Test {
  Test() {
    // constructor body
  }
}

여기, Test() 생성자입니다. 클래스와 이름이 같으며 리턴타입이 없습니다.

권장 자료: 생성자가 값을 반환하지 않는 이유

<시간>

예제 1:자바 생성자

class Main {
  private String name;

  // constructor
  Main() {
    System.out.println("Constructor Called:");
    name = "Programiz";
  }

  public static void main(String[] args) {

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

출력 :

Constructor Called:
The name is Programiz

위의 예에서 Main()이라는 생성자를 만들었습니다. . 생성자 내에서 name 값을 초기화합니다. 변수.

Main의 객체를 생성하는 문장에 주목하세요. 수업.

Main obj = new Main();

여기서 객체가 생성되면 Main() 생성자가 호출됩니다. 그리고 name의 값은 변수가 초기화됩니다.

따라서 프로그램은 name 값을 인쇄합니다. Programiz와 같은 변수 .

<시간>

생성자의 유형

Java에서 생성자는 3가지 유형으로 나눌 수 있습니다.

  1. 인수 없는 생성자
  2. 매개변수화된 생성자
  3. 기본 생성자
<시간>

1. Java No-Arg 생성자

메소드와 유사하게 Java 생성자에는 매개변수(인수)가 있을 수도 있고 없을 수도 있습니다.

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

private Constructor() {
   // body of the constructor
}
<시간>

예시 2:Java private no-arg 생성자

class Main {

  int i;

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

  public static void main(String[] args) {

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

출력 :

Constructor is called
Value of i: 5

위의 예에서 생성자 Main()를 만들었습니다. . 여기서 생성자는 매개변수를 허용하지 않습니다. 따라서 인수가 없는 생성자로 알려져 있습니다.

생성자를 private로 선언했음을 주목하세요.

생성자가 선언되면 private , 클래스 외부에서 액세스할 수 없습니다. 따라서 private 생성자를 사용하여 클래스 외부에서 객체를 생성하는 것은 금지되어 있습니다.

여기서는 같은 클래스 안에 객체를 생성합니다. 따라서 프로그램은 생성자에 액세스할 수 있습니다. 자세한 내용은 Java Implement Private Constructor를 참조하십시오.

그러나 클래스 외부에 객체를 생성하려면 생성자를 public로 선언해야 합니다. .

예시 3:자바 공개 no-arg 생성자

class Company {
  String name;

  // public constructor
  public Company() {
    name = "Programiz";
  }
}

class Main {
  public static void main(String[] args) {

    // object is created in another class
    Company obj = new Company();
    System.out.println("Company name = " + obj.name);
  }
}

출력 :

Company name = Programiz

권장 자료: 자바 액세스 수정자

<시간>

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

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

예시 4:매개변수화된 생성자

class Main {

  String languages;

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

  public static void main(String[] args) {

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

출력 :

Java Programming Language
Python Programming Language
C Programming Language

위의 예에서 Main()이라는 생성자를 만들었습니다. . 여기서 생성자는 단일 매개변수를 사용합니다. 표현에 주목하세요.

Main obj1 = new Main("Java");

여기서는 생성자에 단일 값을 전달합니다. 전달된 인수를 기반으로 언어 변수는 생성자 내부에서 초기화됩니다.

<시간>

3. 자바 기본 생성자

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

예시 5:기본 생성자

class Main {

  int a;
  boolean b;

  public static void main(String[] args) {

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

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

출력 :

a = 0
b = false

여기서는 생성자를 만들지 않았습니다. 따라서 Java 컴파일러는 자동으로 기본 생성자를 생성합니다.

기본 생성자는 초기화되지 않은 모든 인스턴스 변수를 기본값으로 초기화합니다.

유형 기본값
boolean 거짓
byte 0
short 0
int 0
long 0L
char \u0000
float 0.0f
double 0.0d
object 참조 null

위 프로그램에서 변수 ab 기본값 0으로 초기화됩니다. 및 false 각각.

위의 프로그램은 다음과 같습니다.

class Main {

  int a;
  boolean b;

  // a private constructor
  private Main() {
    a = 0;
    b = false;
  }

  public static void main(String[] args) {
    // call the constructor
    Main obj = new Main();

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

프로그램의 출력은 예제 5와 동일합니다.

<시간>

자바 생성자에 대한 중요 참고 사항

<시간>

자바에서 생성자 오버로딩

Java 메소드 오버로딩과 유사하게 매개변수가 다른 두 개 이상의 생성자를 생성할 수도 있습니다. 이것을 생성자 오버로딩이라고 합니다.

예시 6:자바 생성자 오버로딩

class Main {

  String language;

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

  // constructor with a single parameter
  Main(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
    Main obj1 = new Main();

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

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

출력 :

Programming Language: Java
Programming Language: Python

위의 예에는 두 개의 생성자가 있습니다. Main()Main(String language) . 여기서 두 생성자는 변수 언어의 값을 서로 다른 값으로 초기화합니다.

객체 생성 시 전달된 매개변수에 따라 다른 생성자가 호출되고 다른 값이 할당됩니다.

다른 생성자에서 하나의 생성자를 호출하는 것도 가능합니다. 자세한 내용은 Java Call One Constructor from another를 참조하십시오.

참고 :this을 사용했습니다. 클래스의 변수를 지정하는 키워드. this에 대해 자세히 알아보려면 키워드, Java 이 키워드를 방문하십시오.


java

  1. C++ 생성자
  2. 자바 연산자
  3. 자바 주석
  4. 자바 for-each 루프
  5. 자바 생성자
  6. 자바 문자열
  7. 자바 이 키워드
  8. 자바 인터페이스
  9. 자바 익명 클래스
  10. 자바 열거형 생성자