JAVA_constructor

박예린·2022년 12월 28일
0

Java

목록 보기
21/23

생성자(constructor)

: 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드'

  • 처음값, 초기값을 넣을 때 사용(단순히)
  • 클래스 내부의 함수(정확히는 method)
  • return value 없음
  • overload 가능(하나의 클래스에 여러개의 생성자 존재 가능)
  • class를 생성시에 자동호출 됨. 1번
  • 별도의 호출 불가능
  • 생략이 가능함

생성자의 조건
1. 생성자의 이름은 클래스의 이름과 같아야 함
2. 생성자는 리턴 값이 없음(void를 사용하지 않음 -> 생략)

	Card c = new Card();
    //1. 연산자 new에 의해서 메모리(heap)dp CARD클래스의 인스턴스가 생성됨
    //2. 생성자 Card()가 호출되어 수행됨
    //3. 연산자 new의 결과로, 생성된 Card인스턴스의 주소가 반환되어 참조변수 c에 저장됨
``
	//BaseClass bc = {1, "박예린"}; 이렇게 초기화가 불가능해서 생성자 이용

		
		BaseClass bc = new BaseClass(); //생성자가 실행되는 부분 -> 객체 생성 옆에 있는 ();
										  // BaseClass BaseClass() 호출

		BaseClass bc1 = new BaseClass(3); //BaseClass BaseClass(int num) 호출
		
		BaseClass bc2 = new BaseClass(3, "박예린"); //호출되는 생성자 : int num, String na  
												 //BaseClass BaseClass(int num, String na) 호출
		
		//bc.BaseClass(); //error -> 별도의 호출은 불가능
	}

}
`
  //클래스
  class BaseClass{
      //멤버변수
      int number;
      String name;

      //constructor(생성자)
      //없어도 됨. 생략이 가능하지만 값을 넣고싶을 때는 생성자 사용
      //overload
      public BaseClass() {
          System.out.println("BaseClass BaseClass()");
      }
      public BaseClass(int num) {
          System.out.println("BaseClass BaseClass(int num)");
      }
      public BaseClass(int num, String na) {
          System.out.println("BaseClass BaseClass(int num, String na)");
          //초기값이 들어감
          number = num;
          name = na;
      }


      //메소드
      //오버로드 -> 함수이름은 같지만 매개변수로 구분되어 다른함수가 됨
      public void method() {
      }
      public void method(int n) {
      }
   }															
profile
개발자를 꿈꾸는 귀여운 나

0개의 댓글