728x90
1. 생성자
- 함수의 리턴 타입이 없음
- 클래스의 이름과 같은 이름으로 함수를 정의
- 메모리에 객체를 생성하여 영역을 확보
- 바로 인스턴스 변수에 데이터 셋팅
2. 생성자 오버로딩
- 디폴트 생성자 말고 생성자 오버로딩으로 생성자를 만들 때는
- 꼭!!!!! 위의 Member() <= 이 디폴트 생성자를 눈에 보이게 만들어줘야한다.
Member(){
}
Member(String pName,String pTel,String pAddress){
name = pName;
tel = pTel;
address = pAddress;
}
Member(String pName){
name = pName;
}
전체 코드
public class Member {
String name;
String tel;
String address;
// 아래 함수는 눈에 보이지 않게 자동으로 만들어지는 함수
// 1. 리턴의 데이터 타입이 없다!
// 2. 함수의 이름이 클래스의 이름과 같다.
// 이런 함수를 Constructor(생성자)라고 한다.
Member(){
}
// 얘도 생성자
// 이런 것을 생성자 오버로딩이라고 한다.
// 위의 디폴트 생성자 말고 이렇게 생성자 오버로딩으로 생성자를 만들면
// 꼭!!!!!!!!!!! 위의 Member() <= 이 디폴트 생성자를
// 눈에 보이게 만들어줘야 한다.
Member(String pName,String pTel,String pAddress){
name = pName;
tel = pTel;
address = pAddress;
}
Member(String pName){
name = pName;
}
// Member m2 = new Member();
// m2.name = "아이유";
// m2.tel = "010-333-1111";
// m2.address = "서울시 어딘가";
// 함수의 리턴은 아직 결정하지 않고
// 함수의 이름과 파라미터만 먼저 생각한다.
void setMember(String pName,String pTel,String pAddress){
name = pName;
tel = pTel;
address = pAddress;
}
void print() {
System.out.println(name);
System.out.println(tel);
System.out.println(address);
}
}
public class MemberMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 객체생성이란 ??
// 1. 메모리 공간 확보
Member m1 = new Member();
// 2. 데이터 저장
m1.setMember("홍길동", "010-1234-5678", "인천시 서구 가좌동");
Member m2 = new Member();
m2.setMember("아이유", "010-333-1111", "서울시 어딘가");
// constructor ( 생성자 )
// 메모리 공간 확보와 데이터 저장을 한 줄로 처리한다!
Member m3 = new Member("김나나","010-123-9999","인천시 서구 청라");
// Mike "010-222-5555" "이태원"
// 생성자로 저장하되, 생성자에 이름만 저장하도록 만든다.
// 전화번호와 주소는 나중에 저장할 것이다.
// 메모리 공간 확보하면서 이름만 저장하도록 만들어라.
Member m4 = new Member("Mike") ;
// 잘 저장되었는지 확인
// System.out.println(m1.name);
// System.out.println(m1.tel);
// System.out.println(m1.address);
//
// System.out.println(m2.name);
// System.out.println(m2.tel);
// System.out.println(m2.address);
m1.print();
m2.print();
m3.print();
m4.print();
}
}
'Java' 카테고리의 다른 글
Java - 상속 (Inheritance) / 메소드 오버라이딩 (Method Overriding) / super (0) | 2023.01.19 |
---|---|
Java - 접근제어자 / this / getter setter (0) | 2023.01.19 |
Java - 메소드 오버로딩 (Method Overloading) (0) | 2023.01.18 |
Java - Static (전역변수)와 메모리의 data영역 (0) | 2023.01.18 |
Java - 클래스 (객체, 인스턴스 변수(=멤버 변수), 메소드) (0) | 2023.01.18 |