[Java] 생성자 - Constructor

원준·2023년 7월 11일
0

Java

목록 보기
13/19

생성자 ?

  • 이미 우리가 했던 영역이다.
  • new 명령어로 Class를 새로운 객체로 만들때, 사용되는 함수를 생성자(Constructor)라고 한다.
    • //객체를 만드는 역할을 생성자 라고 한다.
      Student st = new Student();
  • 그리고, 객체를 만들면서 초기화 및 초기값을 정해주는 역할을 해주는 것 또한 생성자라고 하는데, 알아보자.

생성자 = 오버로딩?

  • class를 처음 만들면 보이지 않지만 기본값으로 존재하는 생성자가 존재한다.

    • 예시로 class를 만들었을때 Member() 함수가 안보이는 것을 볼수 있다.
       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", "서울시 강서구");
	}
profile
공부해보자

0개의 댓글

관련 채용 정보