컴퓨터 튜토리얼 컴퓨터 지식 Java에서 Object 클래스에 null 매개변수 생성자가 필요한 이유는 무엇입니까?

Java에서 Object 클래스에 null 매개변수 생성자가 필요한 이유는 무엇입니까?

Jan 24, 2024 pm 06:39 PM
빈 생성자

java中为什么 Object类要有一个空的构造函数

Java에서 Object 클래스에 빈 생성자가 있는 이유는 무엇입니까?

다른 클래스는 Object 클래스를 상속하여 Object 생성자 메서드를 상속하므로 매개 변수 없는 생성자를 명시적으로 정의할 필요가 없습니다.

Object는 모든 클래스의 상위 클래스이고 이를 상속하는 다른 클래스가 없으므로 인스턴스화를 위해서는 인수가 없는 생성자가 있어야 합니다.

Java는 뛰어난 다양성, 효율성, 플랫폼 이식성 및 보안을 갖춘 크로스 플랫폼 객체 지향 프로그래밍 언어입니다. 이는 PC, 데이터 센터, 게임 콘솔, 과학 슈퍼컴퓨터, 휴대폰 및 인터넷에서 널리 사용됩니다. 동시에 Java는 세계 최대 규모의 전문 개발자 커뮤니티를 보유하고 있어 향후 개발과 혁신을 위한 견고한 기반을 제공합니다.

객체는 현실 세계에서 우리 주변의 일부 객체를 모방하는 데 자주 사용됩니다.

소프트웨어 개체는 상태와 동작이 있는 실제 개체의 모델입니다. 상태는 사용자 식별자로 명명된 변수를 통해 유지됩니다. 메소드는 객체의 동작을 수행하는 객체와 연관된 함수입니다. 따라서 소프트웨어 객체는 변수를 통해 상태를 유지하고, 메소드를 통해 동작을 수행하는 모델이다.

객체는 객체지향 기술을 이해하는 열쇠입니다. 학습 전, 개, 테이블, TV, 자전거 등 실제 사물을 관찰할 수 있습니다. 이러한 객체에는 상태와 동작이라는 두 가지 공통 특성이 있습니다. 예를 들어, 개는 자신만의 상태(예: 이름, 색깔, 번식력, 배고픔 등)와 행동(예: 꼬리 흔들기)을 가지고 있습니다. 마찬가지로 자전거에는 상태(예: 현재 기어, 바퀴 등)와 동작(예: 제동, 가속, 감속 및 기어 변경)이 있습니다. 이러한 객체를 관찰함으로써 우리는 객체지향 기술을 더 잘 이해할 수 있습니다.

빈 C 생성자 함수 본문을 작성한다는 것은 무엇을 의미하나요

객체 인스턴스화 및 데이터 초기화는 일반적으로 생성자를 통해 수행됩니다. Java에서는 모든 클래스가 Object 클래스에서 상속되므로 기본적으로 Object 클래스의 빈 매개변수 생성자가 상속됩니다. 이는 null 생성자를 작성하지 않더라도 여전히 존재한다는 의미입니다. 그러나 매개변수화된 생성자는 일반적으로 개발자가 직접 작성합니다. 매개 변수가 있는 생성자는 빈 매개 변수 생성자와 유사하게 작동하지만 매개 변수를 수신하고 일부 특정 초기화 작업을 수행할 수 있습니다. 따라서 매개변수화된 생성자를 사용하면 객체의 데이터를 초기화하는 데 더 많은 유연성이 허용됩니다. 요약하면, 빈 매개변수 생성자는 Object 클래스에서 상속된 기본 생성자이고, 매개변수화된 생성자는 개발자가 직접 작성하며 매개변수를 수신하고 특정 초기화 작업을 수행할 수 있습니다.

예를 들어 설명하겠습니다

String height;String

속성을 갖는 Monitor 클래스가 있습니다.

너비

공개 모니터(){}

공개 모니터(문자열 높이, 문자열 너비){}

빈 매개변수 하나와 매개변수가 있는 매개변수 하나가 있는 생성자 메서드

메인 메서드에서는 초기화 작업을 수행합니다

모니터 모니터=새 모니터();

이 구조는 표시 객체만 생성하며 해당 속성에는 값이 없습니다. 수동으로 값을 할당할 수도 있습니다

예: monitor.height=100;

monitor.width=200;

인삼이 들어간거랑은 다르니까 걱정이 많이 덜해요

모니터 모니터2=새 모니터("100","200");

여기서 속성에 값을 할당하기 위해 직접 입력하고 싶은 매개변수를 입력하면 됩니다. 작업이 많이 절약되나요?

이게 장점이에요!

답변 완료!

생성자는 객체를 생성할 때 객체를 초기화할 때 주로 사용하는 특수 메소드입니다. 즉, 객체 멤버 변수에 초기값을 할당하는 것입니다

객체를 생성하는 문에서는 항상 new 연산자와 함께 사용됩니다. 특수 클래스는 여러 개의 생성자를 가질 수 있습니다. 매개변수의 수나 매개변수의 유형, 즉 생성자의 오버로딩에 따라 구분할 수 있습니다.

생성자와 다른 메소드의 차이점

1. 생성자의 이름은 클래스 이름과 정확히 동일해야 하며 일반 메서드는 클래스 이름과 동일할 수 없습니다.

2. 생성자의 함수는 클래스의 객체가 생성될 때 초기화 상태를 정의하는 데 사용되며 반환 값이 없으며 void로 수정할 수 없습니다. 그리고 다른 메서드에는 반환 값이 있습니다. 비록 그것이 void 반환 값이더라도 메서드 본문 자체는 자동으로 아무것도 반환하지 않지만 여전히 무언가를 반환하도록 할 수 있으며 이러한 것들은 안전하지 않을 수 있습니다.

3. 생성자는 new 연산자를 통해 객체가 생성될 때 자동으로 호출되어야 합니다.

4. 클래스를 정의할 때 일반적으로 클래스의 생성자가 표시되며, 함수에서 초기화 작업이 생략될 수 있습니다. 이 기본 생성자는 매개변수가 없습니다. 이 기능이 있어요

간단히 말하면 생성자는 객체를 생성하는 데 사용됩니다. 보다 전문적으로는 객체 인스턴스화라고 합니다.

정의:

A클래스

{

공개 A(){}

}

사용:

A a=new A(); //여기서 A()는 생성자입니다.

한 가지 주의할 점은 클래스에 정의된 생성자가 없으면 컴파일러가 자동으로 빈 생성자를 생성하고 클래스의 각 멤버에 기본값이 할당된다는 것입니다.

그러나 클래스에 전용 생성자만 정의된 경우 클래스는 인스턴스화되지 않습니다.

A클래스

{

문자열a;

private A() { }//이 클래스는 인스턴스화할 수 없습니다

}

매개변수가 있는 생성자를 정의하지만 매개변수가 없는 생성자는 정의하지 않는 경우 이 클래스의 개체를 인스턴스화할 때 매개변수를 제공해야 합니다.

A클래스

{

문자열a;

공개 A(문자열 str) {a=str }

}

객체 A를 인스턴스화할 수 없습니다. a=new A();

생성자는 동적 생성자와 정적 생성자로 구분됩니다.

동적 생성자는 인스턴스화될 때 클래스 또는 구조체에 대한 메모리 공간을 할당하고 클래스 또는 구조체의 멤버 변수 초기화를 완료합니다. 동적 생성자는 오버로드될 수 있습니다. 즉, 동일한 생성자 이름에 다양한 유형과 숫자의 생성자가 여러 개 있습니다. 매개변수가 있는 생성자와 매개변수가 없는 생성자 사이에는 본질적인 차이가 없습니다. 매개변수가 있는 생성자는 전달된 변수에 의해 제어되거나 멤버 변수를 직접 초기화할 수 있습니다.

정적 생성자는 매개변수를 전달할 수 없습니다. 즉, 클래스에는 단 하나의 정적 생성자만 허용됩니다. 정적 멤버에 처음 액세스하거나 이 클래스의 동적 개체를 처음 인스턴스화하기 전에 호출됩니다.

c 생성자는 빈 문자열을 생성합니다

#포함

#포함

네임스페이스 표준 사용;

#MAXLENGTH 1000 정의

클래스 CString

{

문자 m_buff[MAXLENGTH];

공개:

CString(); //생성자 1, 빈 문자열로 설정

~CString();

friend ostream& 연산자

문자 연산자[](int i)const;

};

CString::CString()

{

//m_buff[0]=NULL; 무슨 뜻인가요?

memset(m_buff,0,sizeof m_buff); //문자열 초기화 함수

}

char CString::operator[](int i)const

{

return m_buff[i];

}

ostream& 연산자 {

반품 }

CString::~CString()

{

//delete[] m_buff; 형님, new 없이는 삭제를 사용할 수 없습니다. 삭제는 동적으로 할당되어야 합니다.

}

int main()//일반적으로 int를 씁니다

{

CString s1;

cout return 0; //쓸 필요는 없습니다

} 어쨌든 오류는 보고되지 않습니다. 원하는 기능이 구현될 수 있는지 여부는 C++로 가는 길이 멀기 때문에 천천히 진행하세요.

Java의 생성자 메서드란 무엇입니까

공법은 일반적인 공법과 다른 특별한 공법입니다.

1. 생성자의 이름은 생성자가 정의된 클래스 이름과 정확히 동일해야 합니다. 반환 유형은 없으며 void도 아닙니다.

2. 객체를 생성할 때 new 작업을 사용하여 생성자 메서드가 호출됩니다. 생성자의 기능은 객체를 초기화하는 것입니다.

3. 정적, 최종, 동기화, 추상 및 기본으로 수정할 수 없습니다. 생성자는 하위 클래스에서 상속될 수 없습니다.

클래스 RectConstructor{

두 배 길이;

이중 너비;

이중 영역(){

반환 길이*너비;

}

//다음 메소드는 소위 생성 메소드인데 반환 값이 없고 메소드 이름은 클래스 이름과 동일합니다~~~

RectConstructor(두 배 너비, 두 배 길이){//매개변수가 있는 생성자 메서드

this.length=길이;

this.width=너비;

}

}

실제로 구성방법은 클래스의 멤버들에게 초기값을 할당하는 것입니다~~~~~~~~~~~~~~

위 내용은 Java에서 Object 클래스에 null 매개변수 생성자가 필요한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

레지스트리를 어떻게 편집합니까? (경고 :주의해서 사용하십시오!) 레지스트리를 어떻게 편집합니까? (경고 :주의해서 사용하십시오!) Mar 21, 2025 pm 07:46 PM

기사는 Windows 레지스트리 편집, 예방 조치, 백업 방법 및 잘못된 편집의 잠재적 문제에 대해 설명합니다. 주요 이슈 : 부적절한 변화로 인한 시스템 불안정성 및 데이터 손실의 위험.

Windows 설정에서 Drive Health 경고를 수정하는 방법을 알아보십시오. Windows 설정에서 Drive Health 경고를 수정하는 방법을 알아보십시오. Mar 19, 2025 am 11:10 AM

Windows 설정에서 Drive Health 경고는 무엇을 의미하며 디스크 경고를받을 때 어떻게해야합니까? 이 PHP.CN 튜토리얼을 읽고이 상황에 대처할 수있는 단계별 지침을 얻으십시오.

Windows에서 서비스를 어떻게 관리합니까? Windows에서 서비스를 어떻게 관리합니까? Mar 21, 2025 pm 07:52 PM

기사는 시작, 중지, 서비스 재시작 및 안정성 모범 사례를 포함하여 시스템 건강을위한 Windows 서비스 관리에 대해 논의합니다.

그룹 정책 편집기 (gpedit.msc)를 어떻게 사용합니까? 그룹 정책 편집기 (gpedit.msc)를 어떻게 사용합니까? Mar 21, 2025 pm 07:48 PM

이 기사는 시스템 설정을 관리하기 위해 Windows에서 그룹 정책 편집기 (GPEDIT.MSC)를 사용하는 방법을 설명하고 일반적인 구성 및 문제 해결 방법을 강조합니다. gpedit.msc는 Windows 홈 에디션에서 사용할 수 없다고 제안합니다.

파일 유형의 기본 앱을 어떻게 변경합니까? 파일 유형의 기본 앱을 어떻게 변경합니까? Mar 21, 2025 pm 07:48 PM

기사에서는 회복 및 대량 변경을 포함하여 Windows의 파일 유형에 대한 기본 앱 변경에 대해 설명합니다. 주요 이슈 : 내장 벌크 변경 옵션 없음.

Windows 메타 데이터 및 인터넷 서비스 문제 : 수정 방법은 무엇입니까? Windows 메타 데이터 및 인터넷 서비스 문제 : 수정 방법은 무엇입니까? Apr 02, 2025 pm 03:57 PM

"WMI (Windows Metadata and Internet Services)와의 연결을 설정할 수 없음"을 볼 수 있습니다. 이벤트 뷰어의 오류. Php.cn 의이 게시물은 Windows 메타 데이터 및 인터넷 서비스 문제를 제거하는 방법을 소개합니다.

MSConfig는 선택적 스타트 업으로 계속 되돌아 가고 있습니까? 여기 2 개의 솔루션 MSConfig는 선택적 스타트 업으로 계속 되돌아 가고 있습니까? 여기 2 개의 솔루션 Mar 28, 2025 pm 12:06 PM

MSConfig가 Windows의 선택적 시작으로 계속 되돌아가는 문제에 대해 의문을 제기합니까? 필요한 경우 일반 시작으로 전환하는 방법은 무엇입니까? 이 php.cn 게시물에 설명 된 방법을 사용하여 자신에게 맞는 방법을 찾으십시오.

사용자 정의 키보드 바로 가기를 어떻게 만드나요? 사용자 정의 키보드 바로 가기를 어떻게 만드나요? Mar 21, 2025 pm 07:47 PM

이 기사에서는 AutoHotkey 및 키보드 MAESTRO와 같은 소프트웨어를 사용하여 Windows 및 MacOS에서 사용자 정의 키보드 바로 가기를 작성하고 단축키가 실패한 경우 문제 해결 방법을 작성합니다.

See all articles