1. ์์ฑ์
public class Member {
String name;
int age;
int grade;
//์์ฑ์
void initMember(String name, int age, int grade) {
this.name = name;
this.age = age;
this.grade = grade;
}
}
- initMember์์ ๋ฉ์๋์ ๋งค๊ฐ๋ณ์์์ ์ ์ํ String name๊ณผ Member์ ๋ณ์ ์ด๋ฆ์ด ๊ฐ๋ค.
- ์ด ๊ฒฝ์ฐ ๋งค๊ฐ ๋ณ์๊ฐ ๋ฉค๋ฒ ๋ณ์๋ณด๋ค ์ฝ๋ ๋ธ๋ญ์ด ๋ ์์ชฝ์ ์๊ธฐ ๋๋ฌธ์ ๋งค๊ฐ๋ณ์๊ฐ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ค.
- ๋ฉค๋ฒ ๋ณ์์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ์์ .this๋ฅผ ๋ถ์ฌ ์ฃผ๋ฉด ๋๋๋ฐ, ์ฌ๊ธฐ์ .this๋ ์ธ์คํด์ค ์์ ์ ์ฐธ์กฐ๊ฐ์ ๊ฐ๋ฆฌํจ๋ค.
- ํ๋ ์ด๋ฆ๊ณผ ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ this๋ฅผ ์๋ต ๊ฐ๋ฅํ๋ค.
2. ์์ฑ์ ์ฅ์
1) ์ค๋ณต ํธ์ถ ์ ๊ฑฐ
//์์ฑ์ ๋ฑ์ฅ ์
MemberInit member = new MemberInit();
member.initMember("user1", 15, 90);
//์์ฑ์ ๋ฑ์ฅ ํ
MemberConstruct member = new MemberConstruct("user1", 15, 90);
- ์์ฑ์์ ๋ฑ์ฅ์ผ๋ก ๋ฉ์๋ ์ง์ ํ๋ฒ ๋ ํธ์ถํด์ผํ๋ ์์ ์๋ต ๊ฐ๋ฅ
2) ์ ์ฝ - ์์ฑ์ ํธ์ถ ํ์
- ์์ฑ์ ๋ฑ์ ์ ์ฝ๋์ ๊ฒฝ์ฐ initMember์ ์คํ์ํค์ง ์์๋ ํ๋ก๊ทธ๋จ์ด ์๋ํ๋ค. (ํ์๋ก ์ ๋ ฅ๋์ด์ผ ํ๋์ ์ ์ ์ ๋ณด๊ฐ ์์ด ์๋ํ๋ ํ๋ก๊ทธ๋จ์ด ๋์ด ๋ฒ๋ฆฐ๋ค)
- ์์ฑ์๋ ์ง์ ์ ์ํ ์์ฑ์๋ฅผ ๋ฐ๋์ ํธ์ถํด์ผ ๋๋ค๋ ์ ์์ ํน์ ์ ์ฝ์ ์์ฑํ๋ค.
์ค๋ฅ) onstructor found for MemberConstruct(no arguments)
3) ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ์๊ฐ ์ ๋ ฅ์ ๋ณด์ฅํ ์ ์๋ค.
- ํด๋์ค์ ์์ฑ์๊ฐ ํ๋๋ ์์ ์, ์๋ฐ๋ ์ฝ๋๊ฐ ํ๋ ์๋ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์๋์ผ๋ก ๋ง๋ค์ด์ค๋ค.
- ์์ฑ์๋ฅผ ํตํด ํน์ ๊ฐ์ ํ์๋ก ์ ๋ ฅ๋ฐ๊ฒ ํ ์ ์๋ค.
3. ์์ฑ์ - ์ค๋ฒ๋ก๋ฉ๊ณผ this()
1) ์ค๋ฒ๋ก๋ฉ
public class Member {
String name;
int age;
int grade;
//์์ฑ์
void initMember(String name, int age, int grade) {
this.name = name;
this.age = age;
this.grade = grade;
}
//์ถ๊ฐ
void initMember(String name, int age) {
this.name = name;
this.age = age;
this.grade = 50;
}
}
- ์ถ๊ฐํ ์์ฑ์์ ๊ฒฝ์ฐ grade๋ฅผ ๋ฐ์ง ์๋ ๋์ ์ 50์ผ๋ก ๊ณ ์ ์ด ๋๋ค.
- ์์ฑ์๋ฅผ ์ค๋ฒ๋ก๋ฉํ ๊ฒฝ์ฐ ์ฑ์ ์ ๋ ฅ์ด ๊ผญ ํ์ํ ๊ฒฝ์ฐ์๋ grade๊ฐ ์๋ ์์ฑ์๊ฐ, ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ grade๊ฐ ์๋ ์์ฑ์๋ฅผ ํธ์ถํ๋ฉด ๋๋ค.
2) this
- ๋ ์ฝ๋์ ์ค๋ณต๋๋ ๋ถ๋ถ์ธ this. ๋ถ๋ถ์ this()๋ผ๋ ๊ธฐ๋ฅ์ ํตํด ์์ฑ์ ๋ด๋ถ์์ ์์ ์ ์์ฑ์๋ฅผ ํธ์ถํ๊ฒ ํ ์ ์๋ค.
public class MemberConstruct {
String name;
int age;
int grade;
//์์ฑ์
void initMember(String name, int age, int grade) {
this.name = name;
this.age = age;
this.grade = grade;
}
MemberConstruct(String name, int age) {
this(name, age, 50); //๋ณ๊ฒฝ
}
}
์ถ์ฒ : ๊น์ํ์ ์ค์ ์๋ฐ-๊ธฐ๋ณธํธ
๋๊ธ