자바의 모든 객체는 반드시 한 개 이상의 생성자를 갖는다.
프로그래머가 생성자를 하나도 작성하지 않으면 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 |
자바의 모든 객체는 반드시 한 개 이상의 생성자를 갖는다.
프로그래머가 생성자를 하나도 작성하지 않으면 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 |