생성자란 무엇인가요?
생성자 - 소개
생성자는 객체를 생성할 때 객체를 초기화하는데 주로 사용되는 특수한 방법으로, 즉 객체 멤버변수에 초기값을 할당하는 것이다
>객체를 생성하기 위해 명령문에서 항상 new 연산자와 함께 사용됩니다. 특정 클래스는 매개변수의 수나 매개변수의 유형에 따라 구별될 수 있는 여러 생성자를 가질 수 있습니다. 생성자
생성자 - 생성자와 다른 메소드의 차이점
1. 생성자의 이름은 클래스 이름과 동일해야 하며 일반 메소드는 동일할 수 없습니다.
2 생성자의 함수는 클래스의 객체가 생성될 때 초기화된 상태를 정의하는 데 사용됩니다. 이는 반환 값이 없으며 void로 수정될 수 없음을 보장합니다. 자동으로 아무것도 반환하지 않을 뿐만 아니라 전혀 선택의 여지가 없습니다.
3 생성자는 직접 호출할 수 없으며, new 연산자를 통해 객체가 생성될 때 자동으로 호출되어야 합니다.
4. 클래스를 정의할 때 일반적인 상황에서는 클래스의 생성자가 표시되며, 함수에 지정된 초기화 작업은 생략될 수 있습니다. 그러나 Java 컴파일러는 기본 생성자를 제공합니다. 이 기본 생성자는 매개변수가 없습니다. 이 기능은 존재하지 않습니다.
5 클래스가 전용 생성자만 정의하는 경우 클래스가 아무것도 정의하지 않으면 해당 객체를 생성할 수 없습니다. 생성자를 사용하면 C# 컴파일러가 자동으로 매개 변수가 없는 기본 생성자를 생성합니다.
생성자 - C의 생성자
C의 생성자 정의 형식은 다음과 같습니다: constructor
class
{
p>
public:
(매개변수 목록)
//...(다른 멤버 함수도 선언할 수 있습니다)
}; /p >
: (매개변수 목록)
{
//함수 본문
}
다음 정의는 유효합니다. :
클래스 T
{
공개:
T(int a=0){i=a;}//구성 함수는 클래스 정의 내에서 직접 작성될 수 있으며 매개변수 목록도 허용됩니다.
private: int i;
};
프로그램에 소멸자가 없으면 시스템은 자동으로 다음 생성자를 생성합니다.
: (){}, 이는 작업이 수행되지 않음을 의미합니다.
생성자 - C 예
//이 코드를 컴파일러에 직접 복사하면 웹이 실행될 때 코드 앞에 중국어 자리 표시자가 추가되므로 오류가 보고될 수 있습니다. 페이지가 생성됩니다.
//코드를 다시 작성하는 것이 가장 좋습니다.
#include
namespace std; 시간
{
공개:
time() //constructor.Constructor
{
hour= 0;
시간=0;
분=0; p>void set_time();
void show_time( );
비공개:
int 시간
int 분; p>
int 초
};
int main()
{
수업 시간
t1.show_time();
t1.set_time()
t1.show_time()
반환
}
void time::set_time( )
{
cin gt; gt; 분;
}
void time::show_time()
{ coutlt; }
프로그램 실행 상태:
0:0:0
10 11 11 Enter
10:11:11
클래스나 구조체가 생성될 때마다 생성자라고 합니다. 클래스나 구조체에는 서로 다른 매개변수를 허용하는 여러 생성자가 있을 수 있습니다. 생성자를 사용하면 프로그래머는 기본값을 설정하고, 인스턴스화를 제한하고, 유연하고 읽기 쉬운 코드를 작성할 수 있습니다.
JAVA 샘플 코드:
public class UserManagerImpl은 UserManager를 구현합니다. {
private UserDao userDao
public UserManagerImpl(UserDao userDao){
this.userDao=userDao;
}
public void save(문자열 사용자 이름, 문자열 비밀번호){
this.userDao.save (사용자 이름, 비밀번호);
}
}
PHP의 생성자
생성자 선언 및 기타 작업 선언 동일, 단, 이름은 두 개의 밑줄 __construct()여야 합니다. 이는 PHP5의 변경 사항입니다. PHP4 버전에서는 생성자의 이름이 클래스 이름과 동일해야 합니다. 이전 버전과의 호환성을 위해 클래스에 __construct()라는 메서드가 없으면 PHP는 클래스와 동일한 이름을 가진 메서드를 검색합니다.
형식: function __construct ([매개변수]) { ... ... }
예:
class person{
공개 $name;
공개 $age; _ _construct(){ // 생성자
name="lisi"; /p>
$this-gt;age=28;
}
function say(){
echo "내 이름은 "입니다. this-gt;name."
";
echo "내 나이는 ".$this-gt;age"입니다.
"; >
echo "내 나이는 ".$this-gt;age"입니다."
" p>
}
}
$ per=새로운 사람();
$per-gt;say();
$per-gt;
$per -gt; age=26;
$per-gt; say();
C# 예시
생성자는 생성 시 실행됩니다. 특정 유형의 객체. 생성자는 클래스와 동일한 이름을 가지며 일반적으로 새 객체의 데이터 멤버를 초기화합니다.
다음 예에서는 Taxi라는 클래스가 간단한 생성자를 사용하여 정의됩니다. 그런 다음 new 연산자를 사용하여 클래스를 인스턴스화합니다. 새 객체에 메모리를 할당한 직후 new 연산자는 Taxi 생성자를 호출합니다.
public class Taxi{ public bool isInitialized; public Taxi() { isInitialized = true; }}class TestTaxi{ static void Main() { Taxi t = new Taxi(); .is초기화됨) }}