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

PHPz
풀어 주다: 2024-01-24 18:39:04
앞으로
743명이 탐색했습니다.

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

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