> Java > Java시작하기 > 본문

자바 생성자 란 무엇입니까?

爱喝马黛茶的安东尼
풀어 주다: 2019-11-12 09:26:44
원래의
4168명이 탐색했습니다.

자바 생성자 란 무엇입니까?

Constructor는 객체 지향의 멤버입니다. 생성자는 클래스 이름과 동일하며 반환 값 유형을 정의할 필요가 없습니다. 생성자는 생성된 객체를 생성할 때 호출되는 함수로, 생성된 모든 객체는 생성자를 통해 초기화되어야 합니다. 클래스에 정의된 생성자가 없으면 클래스에는 빈 매개변수가 있는 기본 생성자가 있습니다. 지정된 생성자가 클래스에 정의되어 있으면 클래스에 기본 생성자가 없습니다.

우리가 태어날 때 이름을 지어주는 사람도 있지만, 태어나자마자 이미 이름을 지어주는 사람도 있습니다. 그렇다면 Java로 객체가 생성되면 객체에 값을 어떻게 할당합니까?

자바 생성자 란 무엇입니까?

자바 생성자 란 무엇입니까?

1. 생성자의 역할:

생성자의 역할: 객체를 초기화합니다.

그림과 같이:

자바 생성자 란 무엇입니까?

2. 생성자와 일반 함수의 차이점:

(1) 일반 함수는 객체가 가져야 할 함수를 정의하는 데 사용됩니다. 생성자는 함수를 호출하기 전에 개체가 생성될 때 포함해야 하는 일부 콘텐츠를 정의합니다. 즉, 객체의 초기화 내용입니다.

(2) 객체를 초기화하기 위해 객체가 생성될 때 jvm에 의해 생성자가 호출됩니다. 일반적으로 함수는 객체가 생성된 후 객체가 함수를 호출할 때 실행됩니다.

(3) 일반 함수는 객체를 사용하여 여러 번 호출할 수 있으며, 객체가 생성될 때 생성자가 호출됩니다.

(4) 생성자의 함수 이름은 클래스 이름과 동일해야 하지만 일반 함수는 식별자의 명명 규칙만 준수하면 됩니다.

(5) 생성자에는 반환 값 유형이 없습니다.

3. 생성자에서 주의할 사항:

(1) 클래스에 정의된 생성자가 없으면 시스템은 클래스에 빈 매개변수가 있는 생성자를 할당합니다. 이는 클래스의 기본 생성자입니다. 클래스에서 생성자를 사용자 정의하면 기본 생성자가 사라집니다.

참고: javap 명령을 통해 확인할 수 있습니다.

(2) 다양한 초기화를 위해 클래스에 여러 생성자를 정의할 수 있습니다. 하나의 클래스에는 여러 생성자가 존재하며 오버로딩 형태로 구현됩니다. 생성자의 이름이 모두 동일하기 때문입니다.

class Perosn{
private int id;
private String name;
private int age;
public Perosn(){
cry();
}
public Perosn(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void cry(){
System.out.println("哇哇哇....");
}
}
로그인 후 복사

질문: 모든 아이는 태어날 때 울어야 합니다. 이 코드에는 두 개의 생성자가 있습니다. 모든 아이가 태어날 때 울어야 한다면, 다른 생성자에서 cry() 함수를 호출해야 합니다. 코드 중복 문제가 발생하는데 어떻게 해결하나요? 코드 블록을 구성합니다.

4. 구성 코드 블록:

구성 코드 블록의 기능: 모든 개체를 균일하게 초기화합니다.

class Perosn{
private int id;
private String name;
private int age;
{
cry();// 每个Person对象创建出来都会执行这里的代码
}
public Perosn(){
cry();
}
public Perosn(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void cry(){
System.out.println("哇哇哇....");
}
}
로그인 후 복사

특정 기능:

1: 개체를 초기화합니다. 객체가 생성되자마자 실행되며 생성자보다 우선합니다.

2: 생성자와의 차이점

(1) 생성 코드 블록과 생성자 함수의 차이점은 생성 코드 블록이 모든 개체를 균일하게 초기화하고 생성자 함수가 해당 개체를 초기화한다는 것입니다.

(2) 구성 코드 블록의 기능: 모든 구성 방법에서 공통 정보를 추출하는 기능입니다.

예를 들어, 아이는 태어나면 울 것입니다

코드는 다음과 같습니다:

class Boy {
 
String name;
int age;
String gender;
     // 构造代码块,给所有对象进行初始化。
{
System.out.println("哭。。。");
}
     
Boy() {
System.out.println("无参构造");
}
 
Boy(String n, int a, String g) {
name = n;
age = a;
gender = g;
System.out.println("有参构造");
}
 
void run() {
System.out.println("跑...");
}
 
}
 
class Demo9 {
 
public static void main(String[] args) {
 
System.out.println();
Boy b = new Boy();
 
Boy b2 = new Boy("jack", 1, "男");
 
}
}
로그인 후 복사

php 중국 웹사이트, 다수의 무료 Java 입문 튜토리얼, 온라인 학습을 환영합니다!

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿