1. 생성자(Constructor)
생성자는 객체 생성시 자동으로 호출되는 메소드로 멤버 변수의 초기화나, 객체가 생성되자마자 실행해야 할
코드로 구성된다.
생성자는 함수 타입이 없고, 객체를 생성할 때를 제외하고는 클래스 밖에서 호출할 수 없다는 점을 제외하면
일반 메소드와 동일하다.
생성자의 특징은 다음과 같다.
- 함수 타입(리턴값)이 없다.
- 이름은 항상 클래스의 이름과 같다.
- 오버로딩이 가능하므로 여러 개 만들 수 있다.
2. 생성자 오버로딩으로 초기값 저장하기
주의할 점으로, 원래 디폴트 생성자는 눈에 안 보이고 자동으로 만들어지는데
생성자 오버로딩으로 생성자를 만들 경우에는, 반드시 디폴트 생성자도 눈에 보이게 코드로 적어줘야 한다.
// 주소록 서비스를 개발하고 있다.
public class Member {
String name;
String tel;
String address;
// 아래 함수는 눈에 보이지 않게, 자동으로 만들어지는 함수
// 1. 리턴의 데이터 타입이 없다.
// 2. 함수의 이름이 클래스 이름과 같다.
// 이런 함수를 Constructor(생성자) 라고 한다.
Member(){
}
// 3. 오버로딩이 가능하다.
// 이런것을 생성자 오버로딩이라고 한다.
// 위의 디폴트 생성자 말고, 이렇게 생성자 오버로딩으로 생성자를 만들면
// 꼭꼭꼭!!! 위의 Member() 디폴트생성자를 눈에 보이게 만들어 놓아야 한다.
Member(String pName, String pTel, String pAddress){
name = pName;
tel = pTel;
address = pAddress;
}
Member(String pName){
name = pName;
}
// 데이터 세팅 메소드
void setMember(String pName, String pTel, String pAddress) {
name = pName;
tel = pTel;
address = pAddress;
}
메인함수
public class MemberMain {
public static void main(String[] args) {
Member m1 = new Member();
m1.name = "홍길동";
m1.tel = "010-1234-5678";
m1.address = "인천시 서구 가좌동";
Member m2 = new Member();
m2.setMember("아이유", "010-3333-1111", "서울시 어딘가");
// Constructor(생성자)
// 메모리 공간 확보와 데이터 저장을! 한줄로 처리!
Member m3 = new Member("김나나", "010-111-9999", "인천시 서구 청라");
Member m4 = new Member("Mike");
'Java' 카테고리의 다른 글
Java - 접근제어자와 getter/setter, 캡슐화 (0) | 2023.01.19 |
---|---|
Java - this 키워드 (0) | 2023.01.19 |
Java - 메소드 오버로딩(Method Overloading) (0) | 2023.01.18 |
Java - 클래스와 객체, 메모리 이해하기 (0) | 2023.01.18 |
Java - 함수(function)를 정의하는 방법 (0) | 2023.01.18 |