반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- .substring
- 오라클
- ifelse
- for문
- 상속
- int오류
- Join
- setter
- HAVING
- .repeat
- 객체
- 생성자
- 제어문
- 연산자
- 생성자쓰는이유
- SQL
- 이터레이블
- executeUpdate
- 향상된for문
- sql오류
- 자바
- 겟터
- getter
- 칼럼명에 별칭 지정
- Java
- 작성순서
- 삼항연산자
- 카카오인턴십
- SELECT 절
Archives
- Today
- Total
CoDream
[JAVA]생성자를 사용하는 이유, 사용하는 상황 본문
728x90
반응형
생성자(Constructor)
객체를 생성할 때 호출되는 특별한 메서드
생성자는 객체의 초기화를 담당하며, 객체가 생성될 때 필요한 작업을 수행할 수 있습니다.
Java에서는 클래스와 동일한 이름을 가진 생성자를 사용하여 객체를 생성합니다. 생성자는 반환 타입을 지정하지 않으며, 클래스의 멤버 변수를 초기화하거나 다른 초기화 작업을 수행합니다.
생성자는 다음과 같은 특징을 가지고 있습니다.
- 생성자의 이름은 클래스의 이름과 동일합니다.
- 생성자는 객체가 생성될 때 자동으로 호출됩니다.
- 생성자는 객체의 초기화를 담당하며, 멤버 변수의 초기값을 설정하거나 다른 초기화 작업을 수행합니다.
- 생성자는 리턴 값이 없으며, 자동으로 리턴됩니다.
생성자 호출은 객체를 생성하는 시점에 자동으로 발생합니다.
예를 들어, 다음과 같이 MyClass 클래스의 생성자를 호출하여 객체를 생성할 수 있습니다:
public class MyClass {
// 생성자 정의
public MyClass() {
// 객체 초기화 작업 수행
System.out.println("MyClass의 생성자가 호출되었습니다.");
}
public static void main(String[] args) {
// 생성자 호출하여 객체 생성
MyClass myObject = new MyClass();
}
}
**new MyClass()**는 **MyClass**의 생성자를 호출하여 객체를 생성합니다.
이때 생성자가 호출되면서 객체의 초기화 작업이 수행되고,
"MyClass의 생성자가 호출되었습니다."라는 메시지가 출력됩니다.
생성자(Constructor)를 사용하는 이유
- 객체 초기화: 객체를 생성할 때 필요한 초기화 작업을 수행합니다. 이를 통해 객체가 생성될 때 유효한 상태로 초기화됩니다.
- 멤버 변수 초기화: 생성자를 사용하여 클래스의 멤버 변수를 초기화할 수 있습니다. 이는 객체가 생성될 때 멤버 변수들이 특정한 값으로 초기화되도록 보장합니다.
- 객체의 상태 설정: 생성자를 사용하여 객체의 상태를 설정할 수 있습니다. 예를 들어, 객체의 필수적인 속성이나 초기값을 설정할 수 있습니다.
- 객체의 유효성 검사: 생성자 내에서 객체의 유효성을 검사하고, 유효하지 않은 객체가 생성되는 것을 방지할 수 있습니다.
- 메서드 호출 준비: 생성자 내에서 다른 메서드를 호출하기 위한 준비 작업을 수행할 수 있습니다. 예를 들어, 다른 메서드를 호출하기 전에 필요한 초기화 작업을 수행할 수 있습니다.
- 메모리 할당: 생성자는 객체가 생성될 때 메모리를 할당받습니다. 이 과정에서 필요한 리소스를 초기화하고 확보할 수 있습니다.
요약하자면, 생성자는 객체의 초기화와 관련된 작업을 수행하여 객체가 생성될 때 필요한 초기 상태를 설정합니다. 객체 지향 프로그래밍에서는 객체의 초기화가 중요한데, 이를 위해 생성자를 사용합니다.
728x90
반응형
'JAVA > JAVA 이론' 카테고리의 다른 글
[JAVA]접근 제한자(Access Modifier) (0) | 2024.02.22 |
---|---|
오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2024.02.22 |
[JAVA]필드, 선언, 할당, 초기화, 자료형, 형변환, 객체 (0) | 2024.02.22 |
[JAVA] String to int (0) | 2024.02.21 |
[JAVA]클래스(Class), 객체(Object), 맴버 변수(member variable) (0) | 2024.02.20 |