[개발이야기 #02] 생성자

nyoung·2023년 3월 27일
3

개발이야기

목록 보기
2/9
post-thumbnail

수업을 들으면서 생성자라는 개념이 알듯말듯 알쏭달쏭하게 느껴졌는데, 2회독 만에 드디어 뭔지 감이 조금이나마 잡히는 것 같다!
자바 공부를 하면서 헷갈렸던 개념을 확실히 알게되는 그 기분이 너무 짜릿하고 재미있다.
그래서 오늘은 생성자에 대해서 이야기해보려고 한다!


생성자(Constructor)

객체가 생성될 때에 변수나 상수를 초기화하거나 다른 초기화 기능을 수행하는 메서드를 호출한다.
객체를 생성할때에는 new 키워드와 함께 사용하며, 반환값이 없고 클래스의 이름과 동일하게 짓는다.

  • 기본 생성자 (default constructor)
    생성자 중 매개 변수가 없고, 구현부가 없는 생성자를 기본 생성자라고 한다.
    클래스에는 반드시 하나 이상의 생성자가 존재해야 하는데, 생성자를 구현하지 않았을 때에 호출할 수 있는 생성자이다!
    우리가 굳이 클래스에서 생성자를 구현하지 않아도, new 키워드와 함께 호출할 수 있다는 말.
    주의해야 할 점은 기본 생성자는 변수의 값이 필수가 아니기 때문에 (기본 생성자는 내가 변수의 값을 지정하지 않으면 string은 null, int는 0으로 설정된다.) 꼭 받아야 하는 멤버 변수 값이 있다면 기본 생성자를 사용하지 않는 것이 좋다.
Class(){}  //기본 생성자 형태
  • 생성자 구현
    기본 생성자가 아닌 직접 구현해볼 수 있다. 코드가 짧아져서 내가 선호하는 방법!
int b;
String a;

Class(String a, int b){
	this.a = a;  // 근처에 있는 매개 변수를 가져오려고 하기 때문에 this를 입력하여 멤버변수를 가져온다.
    this.b = b;
    }
    
Class class = new Class("a", 1);  //맨 앞의 Class는 반환되는 데이터 타입을 말하고, 소문자로 시작되는 class는 참조변수 맨 뒤의 Class는 내가 구현한 생성자이다. 미리 구현을 해놓았기 때문에 생성하면서 바로 매개변수를 이용하여 초기화할 수 있다.
  • 생성자 오버로딩 (overloading)
    오버로딩은 생성자 뿐만 아니라 메서드에서도 사용할 수 있는데, 메서드 이름은 같고 매개변수가 다른 경우도 메서드 오버로딩을 이용한다.
    오버로딩하는 이유는 사용자가 여러 생성자 중 필요에 따라 호출해서 사용할 수 있게 하기 위함이다.
profile
새싹 개발자

0개의 댓글