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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
