개발학습일지

[Java] Constructor ( 생성자 ) 사용하기 본문

Java

[Java] Constructor ( 생성자 ) 사용하기

처카푸 2024. 6. 3. 15:51

Constructor ( 생성자 ) 사용하기

 

생성자란 눈에 보이지 않게 자동으로 만들어지는 함수이다.

특징은 리턴의 데이터 타입이 없고 함수의 이름이 만든 클래스 이름과 동일하다.

-> 생성자를 만들면 꼭 기존의 디폴트 생성자는 눈에 보이게 코드 작성해야 한다.

public class Member {
	
	String name;
	String tel;
	String address;
	
    // 디폴트 생성자
    // 눈에 보이지 않아도 자동으로 실행되는 생성자 이지만, 
    // 생성자를 만들면 무조건 눈에 보이게 작성 해야한다. 
	Member(){
	}
	
    // 생성자
	Member(String pName, String pTel, String pAddress){
		name = pName;
		tel = pTel;
		address = pAddress;
	}
	
    // 데이터를 한번에 넣기 위한 메소드
	void setMember(String pName, String pTel, String pAddress) {
		name = pName;
		tel = pTel;
		address = pAddress;
	}
}

 

생성자를 쓰면 좋은 이유

: 메모리 공간 확보와 데이터 저장을 한 줄로 처리할 수 있다.

  위에 처럼 생성자를 만들어 주면, main에 작성되는 코드가 깔끔해진다.

main 함수에 생성자 코드 작성

: 메모리의 heap에 객체를 생성하고,

  데이터를 넣고, 

  해당 데이터의 변수를 메모리 stack에 저장하고,

  데이터를 확인하고 싶으면 변수를 확인하면 된다.

  (-> Member m3 = new Member("아이유", "010-5555-5555", "인천 서구 가좌동"); 이 한줄을 위한 생성자)

public class MemberMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Member m1 = new Member();
		m1.name = "홍길동";
		m1.tel = "010-1111-2222";
		m1.address = "인천 서구";
		
		// 데이터를 한번에 쓰고 싶다 
                // 함수를 만들어서 사용해도 되지만, 생성자를 사용하면 더 간편하다.
		Member m2 = new Member();
		m2.setMember("김나나", "010-3333-3333", "인천 서구 청라");
		
		// 그래서 나온 것이 생성자이다.
		// 생성자는 리턴 타입이 없다.
		Member m3 = new Member("아이유", "010-5555-5555", "인천 서구 가좌동");
		
	}

}