//객체를 만드는 역할을 생성자 라고 한다.
Student st = new Student();
class를 처음 만들면 보이지 않지만 기본값으로 존재하는 생성자가 존재한다.
public class Member {
String name;
String tel;
String address;
//처음에 변수를 먼저 만드록
// 필요에 의해 메소드를 추가를 해 나가자
//눈에 보이지 않는, 기본 생성자가 존재한다. Member()
Member(){
//메모리 확보만 된다.
}
}
생성자 또한 오버로딩을 통해, 객체를 만드는 것과 동시에 초기값을 정하도록 만들 수 있다.
이를 통해 Setter함수를 사용할 필요가 없을 수 있다는 장점이 있다. (만들면서 셋팅을 하니 따로 값을 넣을 필요가 없다)
단, 기본값이 아닌 생성자를 만들경우 기본값으로 설정된 생성자는 없어지니, 사용할려면 따로 만들어 줘야한다. (아래와 같이)
public class Member {
String name;
String tel;
String address;
//처음에 변수를 먼저 만드록
// 필요에 의해 메소드를 추가를 해 나가자
//눈에 보이지 않는, 기본 생성자가 존재한다. Member()
//현재까지 에러없이 잘 사용해왔다.
//=> 생성자를 따로 만들면 기본적으로 제공하는 생성자는 없어진다.
Member(){//오버로딩
//메모리 확보만 된다.
}
//파라미터가 있는 생성자가 필요하다.
//기본적으로 제공하는 것이 아니다.'
//단, 생성자는 리턴이 없다. 생성자 함수 이름은 클래스 이름과 같다
Member(String name, String tel, String address){
this.name = name; //메모리 확보, 데이터 저장을 한번에 하기 위해 만든 생성자
this.tel = tel;
this.address = address;
}
}
Main 함수에서 객체로 만들때, 기존의 방식과는 다르게 생성자를 호출해야한다. (변수를 넣어야함)
public static void main(String[] args) {
// TODO Auto-generated method stub
// 1. 메모리 공간 확보
Member m1 = new Member();
// 2. 데이터 저장
m1.name = "홍길동";
//Constuctor => 메모리 공간확보 + 데이터 저장을 한번에 할 수 있게 해준다.
Member m3 = new Member("철수", "010-5555-4444", "서울시 강서구");
}