Kosta Day10 : Constructor 생성자 / Goods 실습 코드 간결하게 만들기

2022. 1. 27. 17:59· Web/MSA Full-Stack 과정

자바의 모든 객체는 반드시 한 개 이상의 생성자를 갖는다. 

프로그래머가 생성자를 하나도 작성하지 않으면 default 생성자가 만들어진다. 

public class Test{

     public Test(){} //기본생성자 

} 

new Test(); 

 

//overloading을 할 때에는 제한자를 직접 정할 수 있다. 

 

public class Test{

 

public Test(){ ---------1

}

protected Test(int i){ -------------2

 

}

public Test(String s){ -------------3

 

}

}

 

* 같은 class내에서 다른 생성자 호출 방법 

 => 객체가 생성되는 시점에 딱 하나의 생성자가 생성된다. 따라서, 또다른 생성자가 호출될 수 있는 문법을 제공하는데.

       이것은 생성자 구현부 첫번째 줄에서 사용가능하다. 

  this([값, 값, 

 

* this 키워드

  : 생성된 현재 객체 뜻한다. 

  1) this.변수이름  : 현재 객체안에 있는 전역변수를 뜻한다. 

  2) this.메소드이름(값,값,,,,) : 현재 객체안에 있는 메소드를 호출 

  3) this(값,값,,,,,) : 현재 객체안에 있는 생성자를 호출(반드시 생성자 구현부 첫번째 줄에서만 가능)

 

* super 키워드

   : 상속관계일때 자식안에서 부모를 부를때 사용하는 키워드 

  1) super.변수이름  : 부모클래스안에 있는 전역변수를 뜻한다.

  2) super.메소드이름(값,값,,,,) : 부모클래스 안에 있는 메소드를 호출 

  3) super(값,값,,,,,) : 부모클래스에 있는 생성자를 호출(반드시 생성자 구현부 첫번째 줄에서만 가능)

-------------------------------------------------------------------------------------------

그렇다면, 왜  ? 생성자를 만들까?

                   

                    : 객체가 생성될 데이터를 초기화!!

                    : 객체가 생성될 때 딱 한번 해야할 일들이 있다면 메소드보다는 생성자에서 하는 것이 편리하다.

 

생성자는 재사용의 목적 보다는 

객체가 만들어지는 순간에 객체의 초기화가 필요할 때 쓰는 것이다. 

 

ex) 어제실습에서

new Goods(); // 속성들은 모두 초기화 !!  (0에 준하는 값으로)

Goods g = new Goods();

 

 

g.setCode("A01");

g.setName("새우깡");

g.setPrice("3000");

g.setExplain("맛있다.");

 

만약 10개라면 위의 과정을 10번 했어야했다. 

근데 생성자로한다면, , 굳이 메소드를 10번쓰지 않더라도 

데이터 (코드, 이름, 가격,.,등)값들만 초기화해준다

 

class Goods {

   public Goods(){} //기본생성자 -> 이 과정을 먼저 한 후 overloadind을 권장한다. 

   public Goods(String code, String name){

 

      this.code = code;

      this.name = name; //이렇게 바꾸어 준다. 

      this.name = "새우깡";  //하지만 값들은 유연해질 필요가 있고,,  이 값들은 인수로 받는다.. 

       }

}

개발자가 생성자를 만들면 기본 생성자가 만들어 지지 않는다...   -> 상속과 연결되는 내용 

 

기본 생성자를 먼저 만든다. 

 

Goods g1 = new Goods(); // 속성(10개)들은 모두 초기화!! 

Goods g2 = new Goods("A01", "새우깡");

Goods g3 = new Goods("A02","감자깡");

 

g.setCode("A01");

g.setName("새우깡");

g.setPrice("3000");

g.setExplain("맛있다.");

 

왜 생성자를 오버로딩할까?? 

   : 데이터를 초기화 할때 원하는 속성만 초기화가 필요하면 오버로딩을 이용한다. 

     단, 반복되는 코드는 this()를 이용해서 생성자를 호출해서 재사용한다. 

 

 

 

------------------------------------------------------------------------------------------------

 

 

'Web > MSA Full-Stack 과정' 카테고리의 다른 글

Kosta Day12 : 상속 / 다형성  (0) 2022.02.08
Kosta Day11 : 싱글톤 클래스 / MVC 패턴 / Class Diagram  (0) 2022.01.28
Kosta Day9 : 정렬 / 2차원 배열 / CRUD 실습  (0) 2022.01.26
Kosta Day8 : this./ 배열 Array  (0) 2022.01.25
Kosta Day6 : Method / 변수  (0) 2022.01.24
'Web/MSA Full-Stack 과정' 카테고리의 다른 글
  • Kosta Day12 : 상속 / 다형성
  • Kosta Day11 : 싱글톤 클래스 / MVC 패턴 / Class Diagram
  • Kosta Day9 : 정렬 / 2차원 배열 / CRUD 실습
  • Kosta Day8 : this./ 배열 Array
ERE
ERE
You Only Live Once
ERE
삶'은 아리
ERE
전체
오늘
어제
  • 개발 (55)
    • Data Platform Engineering (4)
      • HBase 운영 (0)
    • Web (27)
      • MSA Full-Stack 과정 (20)
      • Git & 배포 (7)
    • CS (1)
      • 네트워크 (0)
    • Data analysis (10)
      • Data Process (10)
      • Model (0)
    • 회고 (6)
      • 지원후기 (6)
    • 알고리즘 (3)
      • 리트코드 (3)
      • 백준 (0)
      • 프로그래머스 (0)
    • LEE AHRI (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • nhn 아카데미
  • 데청캠
  • Python
  • master/slave
  • 재학대
  • 데이터청년캠퍼스
  • Kdata
  • 품사임베딩
  • 범주형변수
  • HBASE
  • SQL
  • 빅리더AI
  • 맥북
  • 데이터청년켐퍼스
  • 빅리더AI아카데미
  • nhn academy
  • AI논문
  • stop words
  • HTML #CSS #웹기초
  • 선형회귀#파이썬#머신러닝#캐글
  • AI아카데미
  • 영상텍스트추출
  • 파이썬
  • 리트코드
  • 빅리더
  • 카카오추천팀
  • pull requests
  • spacy
  • Ai
  • 선형회귀 #통계 #데이터사이언스

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
ERE
Kosta Day10 : Constructor 생성자 / Goods 실습 코드 간결하게 만들기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.