Constructor

생성자 constructor 문법으로 메모리 공간 확보와 데이터 저장을 한 번에 할 수 있다. 

 

 

1. 이름과 전화번호, 주소를 입력할 수 있는 Member class를 만들고, 

MemberTest class에서 데이터를 넣어 준다. 

 

Member.java

public class Member {
	
	String name;
	String tel;
	String address; 
	
	void print(){
		System.out.println(name);
		System.out.println(tel);
		System.out.println(address);
	}
}

 

MemberTest.java

public class MemberTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 1. 메모리 공간 확보 
		Member m1 = new Member(); // 객체. 힙에 생성된 것 instance object = 왼쪽은 변수
		
		// 2. 데이터 저장 
		m1.name = "홍길동";
		m1.tel = "010-1234-5678";
		m1.address = "인천시 서구";

		Member m2 = new Member();
		m2.name = "김돌복";
		m2.tel = "010-2221-2278";
		m2.address = "인천시 동구";
		
		m1.print();
		m2.print();
	}
}

 


 

Member.java

public class Member {
	
	String name;
	String tel;
	String address; 
	
	// 1. 눈에 안 보이지만, 기본적으로 Member() 이 생성자는 만들어져 있다. 
    // 따라서 지금까지 에러 없이 잘 사용해왔다. 
	// 2. 이제는 파라미터가 있는 생성자가 필요하다. 이것은 기본적으로 제공하는 것이 아니므로 만들어줘야 한다. 
	// 힙에 있는 객체에 있는 파라미터 클래스의 멤버변수에 저장하라 
	// 단, 생성자는 리턴타입이 없다!!!!!!!!!!
	// 생성자 함수 이름은 클래스 이름과 같다!!!!!!!!!
	
	Member(String name, String tel, String address) {
		this.name = name;
		this.tel = tel;
		this.address = address;
	}

	// 3. 우리가 새로 생성자를 만들면, 기존에 기본적으로 제공한 Member() 이 생성자는 사라진다. 
	// 따라서 이 생성자도 써 줘야 한다. 메소드 오버로딩으로 만들 수 있다. 
	Member() {
		
	}

	void print(){
		System.out.println(name);
		System.out.println(tel);
		System.out.println(address);
	}
}

 

MemberTest.java

public class MemberTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 1. 메모리 공간 확보 
		Member m1 = new Member(); // 객체. 힙에 생성된 것 instance object = 왼쪽은 변수
		
		// 2. 데이터 저장 
		m1.name = "홍길동";
		m1.tel = "010-1234-5678";
		m1.address = "인천시 서구";

		Member m2 = new Member();
		m2.name = "김돌복";
		m2.tel = "010-2221-2278";
		m2.address = "인천시 동구";
		
		m1.print();
		m2.print();

		// 1. 메모리 공간 확보 + 2. 데이터 저장 
		Member m3 = new Member("철수", "010-3838-2929", "인천시 남구");
		m3.print();

	}
}

 


 

 

Member.java

public class Member {
	
	String name;
	String tel;
	String address; 
	
	Member(String name, String tel, String address) {
		this.name = name;
		this.tel = tel;
		this.address = address;
	}

	Member() {
	}
	
	// 주소는 옵셔널 데이터라 안 받을 수도 있다. 
    // 따라서 이름과 전화번호만 바로 저장할 수 있는 생성자도 만든다. 
	Member(String name, String tel) {
		this.name = name;
		this.tel = tel;
	}

	void print(){
		System.out.println(name);
		System.out.println(tel);
		System.out.println(address);
	}
}

 

MemberTest.java

public class MemberTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 1. 메모리 공간 확보 
		Member m1 = new Member(); // 객체. 힙에 생성된 것 instance object = 왼쪽은 변수
		
		// 2. 데이터 저장 
		m1.name = "홍길동";
		m1.tel = "010-1234-5678";
		m1.address = "인천시 서구";

		Member m2 = new Member();
		m2.name = "김돌복";
		m2.tel = "010-2221-2278";
		m2.address = "인천시 동구";
		
		m1.print();
		m2.print();

		// 1. 메모리 공간 확보 + 2. 데이터 저장 
		Member m3 = new Member("철수", "010-3838-2929", "인천시 남구");
		m3.print();
		
		// 주소는 옵셔널 데이터라 안 받을 수도 있다. 
        // 따라서 이름과 전화번호만 바로 저장할 수 있는 생성자도 만든다. 
		Member m4 = new Member("제인", "010-3333-9999");
		m4.print();	
	}
}

 


 

생성자(Constructor)도 메소드인가? :: 자바캔(Java Can Do IT) (tistory.com)

 

생성자(Constructor)도 메소드인가?

메소드로 이해하기 쉬운 생성자에 대하여 상세하게 살펴본다. 생성자의 기능과 형태 클래스는 초기화를 위하여 생성자(constructor)라는 특별한 코드 블록을 가질 수 있다. 즉, 생성자는 클래스가 n

javacan.tistory.com

 

+ Recent posts