Java 및 객체 지향 프로그래밍[#2]
5472 단어 javaconstructorsbeginnersoop
요약
이전 기사에서는 객체 지향 프로그래밍, 객체 및 클래스와 클래스 멤버에 액세스하는 방법에 대해 설명했습니다. 또한 첫 번째 기사에서 이러한 개념의 예를 보았습니다.
오늘의 기사에서는 생성자, 유형 및 사용 방법을 살펴보겠습니다. 이것은 예제로 뒷받침될 것입니다.
생성자란 무엇입니까?
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에서 저에게 연락해 주시면 감사하겠습니다.
Reference
이 문제에 관하여(Java 및 객체 지향 프로그래밍[#2]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rukundob451/java-and-object-oriented-programming-2-2aj0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)