💡 목표
1. 기본 생성자에 대해 알아보자.
2. 사용자 정의 생성자에 대해 알아보자.
3. 생성자 오버로딩이란 뭘까?
1. 기본 생성자에 대해 알아보자.
생성자(Constructor)는 클래스의 인스턴스, 즉 객체를 생성할 때 호출되는 특별한 유형의 메서드이다. 객체의 초기화를 담당하며, 객체가 올바르게 사용될 수 있도록 필요한 값들을 설정하고, 필요한 초기화 코드를 실행한다.
생성자의 주요 특징
- 생성자의 이름은 클래스의 이름과 동일해야 합니다.
- 생성자는 반환 타입을 가지지 않으며, 심지어 void 도 사용하지 않습니다.
- 객체 생성 시 new 키워드와 함께 자동으로 호출됩니다.
- 생성자는 기본 생성자와 사용자 정의 생성자로 구분할 수 있습니다.
기본 생성자 (default constructor)
- 클래스에는 반드시 적어도 하나 이상의 생성자가 존재한다.
- 클래스에 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있음
- 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를 넣어 줌
사용자 정의 생성자(Overloaded Constructor) - 매개변수가 있는 생성자
- 이를 통해 객체 생성 시 특정 값으로 초기화할 수 있습니다.
- 사용자 정의 생성자를 선언하면 컴파일러는 기본 생성자 (default constructor)는 제공되지 않음
- 필요에 따라 여러 생성자를 만들어 줄 수 있다.
public class Student {
//생성자 - constructor
//객체를 생성할 때 다음과 같은 모양을 만들어라고 강제로 지시하는 것
//생성자는 객체를 생성할 때 반드시 존재해야 한다.
String name;
int number;
int grade;
// 생성자는 리턴 타입이 없다. (int 리턴 가능)
// 클래스 이름과 같다면(대문자가지 동일) 생성자라고 부른다
public Student() { } // <-- 기본 생성자
// 기본 생성자는 컴파일러가 .class 파일을 만들 때
// 사용자 정의 생성자가 하나도 없다면 자동으로 코드를 넣어 준다.
// 사용자 정의 생성자란
// 클래스 설계자가 인스턴스화 했을 때 정상적으로 동작해야 하는 초깃값들이 필요하다면 강제성을 부여 하는 것
public Student(String s, int n1, int n2) {
name = s;
number = n1;
grade = n2;
}
//중요 별표 3개
// 생성자는 객체가 처음 만들어 질 대 제일 먼저 수행하는 코드이다.
public void showInfo() {
System.out.println("학생의 이름은 " + name);
System.out.println("학생의 번호는 " + number);
System.out.println("학생의 학년은 " + grade);
}
public Student(String s) {
name = s;
}
public void showInfo2() {
System.out.println("학생의 이름은 "+ name);
}
}//end of class
public class StudentMainTest {
public static void main(String[] args) {
Student s1 = new Student("홍길동", 101, 3); // 객체
System.out.println(s1); // 주소값이 출력이 된다.
s1.showInfo();
// 연습문제
// s2 참조 변수에 이름으로 학생을 메모리에 올리고 호출해주세요
Student s2 = new Student("유나");
System.out.println(s2);
s2.showInfo();
// 변수에 직접 접근해서 값을 초기화 해보세요
Student s3 = new Student();
s3.name = "야스오";
s3.number = 1;
s3.grade = 103;
// 생성자를 여러개 만들어 줄 수 있다.
// 생성자 오버로딩이라고 한다.
}// end of main
}
실행 결과_______
생성자 오버로딩 만드는 연습
public class UserInfo {
public String userId;
public String userpasword;
public String userName;
public String userAddress;
public String phoneNumber;
public String userColor;
// 생성자 오버로딩이란
// 생성자의 개수가 여러개 있다
// 기본 생성자 형태 만들ㅇ ㅓ보기
public UserInfo() {
}
public UserInfo(String id) {
userId = id;
}
public UserInfo(String id, String name) {
userName = name;
userId = id;
}
// 연습문제
// 1 - 매개변수 3개를 받는 생성자를 만들어 주세요
public UserInfo(String id, String name, String number) {
userId = id;
userName = name;
phoneNumber = number;
}
// 2 - 매개변수 4개를 받는 생성자를 만들어 주세요
public UserInfo(String id, String name, String number, String address) {
userId = id;
userName = name;
phoneNumber = number;
userAddress = address;
}
// 3 - 매개변수 5개를 받는 생성자를 만들어 주세요
public UserInfo(String id, String name, String number, String address, String color) {
userId = id;
userName = name;
phoneNumber = number;
userAddress = address;
userColor = color;
}
}// end of class
public class UserInfoMainTest {
public static void main(String[] args) {
//UserInfoMainTest serInfo1 = new UserInfo("123");
}//end of main
}//end of class
'JAVA > Java 기초' 카테고리의 다른 글
[JAVA] 기초 - 접근 제어 지시자 (0) | 2024.05.20 |
---|---|
[JAVA] 기초 - 객체지향 패러다임 (0) | 2024.05.20 |
[JAVA] 기초 - RunTime Data Area (0) | 2024.05.20 |
[JAVA] 파일 입력 스트림(문자 기반 스트림) (0) | 2024.05.20 |
[JAVA] 문자 기반 스트림 (0) | 2024.05.17 |