μμ±μ
μμ±μ - νμν μ΄μ
κ°μ²΄λ₯Ό μμ±νλ μμ μ μ΄λ€ μμ μ νκ³ μΆλ€λ©΄ μμ±μ(Construct)λ₯Ό μ΄μ©νλ©΄ λλ€.
MemberInit
package construct;
public class MemberInit {
String name;
int age;
int grade;
}
MemberInitMain1
package construct;
public class MemberInitMain1 {
public static void main(String[] args) {
MemberInit member1 = new MemberInit();
member1.name = "user1";
member1.age = 15;
member1.grade = 90;
MemberInit member2 = new MemberInit();
member2.name = "user2";
member2.age = 16;
member2.grade = 80;
MemberInit[] members = {member1, member2};
for (MemberInit s : members) {
System.out.println("μ΄λ¦: " + s.name + ", λμ΄: " + s.age + ", μ±μ : " + s.grade);
}
}
}
νμ κ°μ²΄λ₯Ό μμ±νκ³ λλ©΄ name, age, grade κ°μ λ³μμ μ΄κΈ°κ°μ μ€μ νλ€.
νμ§λ§ νμμ μ΄κΈ°κ°μ μ€μ νλ λΆλΆμ΄ κ³μ λ°λ³΅λκ³ μλ€.
package construct;
public class MemberInitMain2 {
public static void main(String[] args) {
MemberInit member1 = new MemberInit();
initMember(member1, "user1", 15, 90);
MemberInit member2 = new MemberInit();
initMember(member2,"user2", 16, 80);
MemberInit[] members = {member1, member2};
for (MemberInit s : members) {
System.out.println("μ΄λ¦: " + s.name + ", λμ΄: " + s.age + ", μ±μ : " + s.grade);
}
}
static void initMember (MemberInit member, String name, int age, int grade) {
member.name = name;
member.age = age;
member.grade = grade;
}
}
initMember(...) λ©μλλ₯Ό μ¬μ©ν΄μ λ°λ³΅μ μ κ±°νλ€. κ·Έλ°λ° μ΄ λ©μλλ λλΆλΆ Member κ°μ²΄μ λ©€λ² λ³μλ₯Ό μ¬μ©νλ€.
μ΄λ° κ²½μ° μμ±κ³Ό κΈ°λ₯μ ν κ³³μ λλ κ²μ΄ λ λμ λ°©λ²μ΄λ€. μ½κ² μ΄μΌκΈ°ν΄μ MemberInitμ΄ μκΈ° μμ μ λ°μ΄ν°λ₯Ό λ³κ²½νλ κΈ°λ₯(λ©μλ)μ μ 곡νλ κ²μ΄ μ’λ€.
this
MemberInit - initMember() μΆκ°
package construct;
public class MemberInit {
String name;
int age;
int grade;
void initMember (String name, int age, int grade) {
this.name = name;
this.age = age;
this.grade = grade;
}
}
package construct;
public class MemberInitMain2 {
public static void main(String[] args) {
MemberInit member1 = new MemberInit();
member1.initMember("user1", 15, 90);
MemberInit member2 = new MemberInit();
member2.initMember("user2", 16, 80);
MemberInit[] members = {member1, member2};
for (MemberInit s : members) {
System.out.println("μ΄λ¦: " + s.name + ", λμ΄: " + s.age + ", μ±μ : " + s.grade);
}
}
}
this
λ©€λ² λ³μμ λ©μλμ 맀κ°λ³μμ μ΄λ¦μ΄ κ°μΌλ©΄ λμ μ΄λ»κ² ꡬλΆν΄μΌ ν κΉ?
- λ©€λ² λ³μλ³΄λ€ λ§€κ°λ³μκ° μ½λ λΈλ‘μ λ μμͺ½μ μκΈ° λλ¬Έμ 맀κ°λ³μκ° μ°μ μμλ₯Ό κ°μ§λ€.
λ°λΌμ initMember(String name, ...) λ©μλ μμμ nameμ΄λΌκ³ μ μΌλ©΄ 맀κ°λ³μμ μ κ·Όνκ² λλ€. - λ©€λ² λ³μμ μ κ·Όνλ €λ©΄ μμ this.μ΄λΌκ³ ν΄μ£Όλ©΄ λλ€. thisλ μΈμ€ν΄μ€ μμ μ μ°Έμ‘°κ°μ κ°λ¦¬ν¨λ€.
thisμ μλ΅
thisλ μλ΅ κ°λ₯νλ€. λ³μλ₯Ό μ°Ύμ λ κ°κΉμ΄ μ§μλ³μ(맀κ°λ³μλ μ§μλ³μ)λ₯Ό λ¨Όμ μ°Ύκ³ μμΌλ©΄ κ·Έλ€μμΌλ‘ λ©€λ² λ³μλ₯Ό μ°Ύλλ€. λ©€λ² λ³μλ μμΌλ©΄ μ€λ₯κ° λ°μνλ€.
package construct;
public class MemberThis {
String nameField;
void initMember (String nameParameter) {
nameField = nameParameter;
}
}
- nameFieldλ λ¨Όμ μ§μλ³μ(맀κ°λ³μ)μμ κ°μ μ΄λ¦μ΄ μλμ§ μ°Ύλλ€. μ΄ κ²½μ° μμΌλ―λ‘ λ©€λ² λ³μμμ μ°Ύλλ€.
- nameParameterλ μ§μλ³μ(맀κ°λ³μ)μμ κ°μ μ΄λ¦μ΄ μλμ§ μ°Ύλλ€. 맀κ°λ³μκ° μμΌλ―λ‘ λ§€κ°λ³μλ₯Ό μ¬μ©νλ€.
thisμ μ½λ© μ€νμΌ
package construct;
public class MemberThis {
String nameField;
void initMember (String nameParameter) {
this.nameField = nameParameter;
}
}
this.nameFieldλ₯Ό 보면 thisλ₯Ό μλ΅ν μ μμ§λ§, μλ΅νμ§ μκ³ μ¬μ©ν΄λ λλ€.
μ΄λ κ² thisλ₯Ό μ¬μ©νλ©΄ μ΄ μ½λκ° λ©€λ² λ³μλ₯Ό μ¬μ©νλ€λ κ²μ λμΌλ‘ μ½κ² νμΈν μ μλ€.
μ½κ² μ΄μΌκΈ°ν΄μ thisλ₯Ό κ°μ λ‘ μ¬μ©ν΄μ, μ§μ λ³μ(맀κ°λ³μ)μ λ©€λ² λ³μλ₯Ό λμ 보μ΄λλ‘ κ΅¬λΆνλ κ²μ΄λ€.
μμ±μ - λμ
λλΆλΆμ κ°μ²΄ μ§ν₯ μΈμ΄λ κ°μ²΄λ₯Ό μμ±νμλ§μ μ¦μ νμν κΈ°λ₯μ μ’ λ νΈλ¦¬νκ² μνν μ μλλ‘ μμ±μλΌλ κΈ°λ₯μ μ 곡νλ€. μμ±μλ₯Ό μ¬μ©νλ©΄ κ°μ²΄λ₯Ό μμ±νλ μμ μμ μ¦μ νμν κΈ°λ₯μ μνν μ μλ€.
MemberConstruct
package construct;
public class MemberConstruct {
String name;
int age;
int grade;
MemberConstruct (String name, int age, int grade) {
System.out.println("μμ±μ νΈμΆ name: " + name + ", age: " + age + ", grade: " + grade);
this.name = name;
this.age = age;
this.grade = grade;
}
}
μμ±μλ λ©μλμ λΉμ·νμ§λ§ μ°¨μ΄κ° μλ€.
- μμ±μμ μ΄λ¦μ ν΄λμ€ μ΄λ¦κ³Ό κ°μμΌ νλ€. λ°λΌμ 첫 κΈμλ λλ¬Έμλ‘ μμνλ€.
- μμ±μλ λ°ν νμ μ΄ μλ€. λΉμλμ΄μΌ νλ€.
- λλ¨Έμ§λ λ©μλμ κ°λ€.
ConstructMain1
package construct;
public class ConstructMain1 {
public static void main(String[] args) {
MemberConstruct member1 = new MemberConstruct("user1", 15, 90);
MemberConstruct member2 = new MemberConstruct("user2", 16, 80);
MemberConstruct[] members = {member1, member2};
for (MemberConstruct s : members) {
System.out.println("μ΄λ¦: " + s.name + ", λμ΄: " + s.age + ", μ±μ : " + s.grade);
}
}
}
μμ±μ νΈμΆ
μμ±μλ μΈμ€ν΄μ€λ₯Ό μμ±νκ³ λμ μ¦μ νΈμΆλλ€.
new μμ±μμ΄λ¦(μμ±μμ λ§λ μΈμ λͺ©λ‘)
new ν΄λμ€μ΄λ¦(μμ±μμ λ§λ μΈμ λͺ©λ‘)
new ν€μλλ₯Ό μ¬μ©ν΄μ κ°μ²΄λ₯Ό μμ±ν λ λ§μ§λ§μ κ΄νΈ( )λ ν¬ν¨ν΄μΌ νλ μ΄μ κ° λ°λ‘ μμ±μ λλ¬Έμ΄λ€.
κ°μ²΄λ₯Ό μμ±νλ©΄μ λμμ μμ±μλ₯Ό νΈμΆνλ€λ μλ―Έλ₯Ό ν¬ν¨νλ€.
μμ±μ μ₯μ
μ€λ³΅ νΈμΆ μ κ±°
- μμ±μ λλΆμ κ°μ²΄λ₯Ό μμ±νλ©΄μ λκΈ°μ μμ± μ§νμ νμν μμ μ ν λ²μ μ²λ¦¬ν μ μκ² λμλ€.
μ μ½ - μμ±μ νΈμΆ νμ
- κ°μ²΄λ₯Ό μμ±ν λ μ§μ μ μν μμ±μκ° μλ€λ©΄ μ§μ μ μν μμ±μλ₯Ό λ°λμ νΈμΆν΄μΌ νλ€.
μμ±μλ₯Ό μ¬μ©νλ©΄ νμ κ° μ λ ₯μ 보μ₯ν μ μλ€.
βοΈ μ°Έκ³
μ’μ νλ‘κ·Έλ¨μ 무νν μμ λκ° μ£Όμ΄μ§λ νλ‘κ·Έλ¨μ΄ μλλΌ μ μ ν μ μ½μ΄ μλ νλ‘κ·Έλ¨μ΄λ€.
κΈ°λ³Έ μμ±μ
κΈ°λ³Έ μμ±μ
- 맀κ°λ³μκ° μλ μμ±μλ₯Ό κΈ°λ³Έ μμ±μλΌκ³ νλ€.
- ν΄λμ€μ μμ±μκ° νλλ μμΌλ©΄ μλ° μ»΄νμΌλ¬λ 맀κ°λ³μκ° μκ³ , μλνλ μ½λκ° μλ κΈ°λ³Έ μμ±μλ₯Ό μλμΌλ‘ λ§λ€μ΄μ€λ€.
- μμ±μκ° νλλΌλ μμΌλ©΄ μλ°λ κΈ°λ³Έ μμ±μλ₯Ό λ§λ€μ§ μλλ€.
MemberDefault
package construct;
public class MemberDefault {
String name;
MemberDefault () {
}
}
κΈ°λ³Έμμ±μλ₯Ό μ μλμΌλ‘ λ§λ€μ΄μ€κΉ?
μλ°μμ κΈ°λ³Έ μμ±μλ₯Ό λ§λ€μ΄μ£Όμ§ μλλ€λ©΄ μμ±μ κΈ°λ₯μ΄ νμνμ§ μμ κ²½μ°μλ λͺ¨λ ν΄λμ€μ κ°λ°μκ° μ§μ κΈ°λ³Έ μμ±μλ₯Ό μ μν΄μΌ νλ€.
μμ±μ κΈ°λ₯μ μ¬μ©νμ§ μλ κ²½μ°λ λ§κΈ° λλ¬Έμ μ΄λ° νΈμ κΈ°λ₯μ μ 곡νλ€.
μμ±μ - μ€λ²λ‘λ©κ³Ό this( )
μμ±μλ λ©μλ μ€λ²λ‘λ©μ²λΌ 맀κ°λ³μλ§ λ€λ₯΄κ² ν΄μ μ¬λ¬ μμ±μλ₯Ό μ 곡ν μ μλ€.
MemberConstruct - μμ±μ μΆκ°
package construct;
public class MemberConstruct {
String name;
int age;
int grade;
MemberConstruct (String name, int age) {
this.name = name;
this.age = age;
this.grade = 50;
}
MemberConstruct (String name, int age, int grade) {
System.out.println("μμ±μ νΈμΆ name: " + name + ", age: " + age + ", grade: " + grade);
this.name = name;
this.age = age;
this.grade = grade;
}
}
κΈ°μ‘΄ MemberConstructμ μμ±μλ₯Ό νλ μΆκ°ν΄μ μμ±μκ° 2κ°κ° λμλ€.
MemberConstruct(String name, int age)
MemberConstruct(String name, int age, int grade)
package construct;
public class ConstructMain2 {
public static void main(String[] args) {
MemberConstruct member1 = new MemberConstruct("user1", 15, 90);
MemberConstruct member2 = new MemberConstruct("user2", 16);
MemberConstruct[] members = {member1, member2};
for (MemberConstruct s : members) {
System.out.println("μ΄λ¦: " + s.name + ", λμ΄: " + s.age + ", μ±μ : " + s.grade);
}
}
}
μμ±μλ₯Ό μ€λ²λ‘λ©ν λλΆμ μ±μ μ λ ₯μ΄ κΌ νμν κ²½μ°μλ gradeκ° μλ μμ±μλ₯Ό νΈμΆνλ©΄ λκ³ , κ·Έλ μ§ μμ κ²½μ°μλ gradeκ° μλ μμ±μλ₯Ό νΈμΆνλ©΄ λλ€. gradeκ° μλ μμ±μλ₯Ό νΈμΆνλ©΄ μ±μ μ 50μ μ΄ λλ€.
μ΄λ this( )λΌλ κΈ°λ₯μ μ¬μ©νλ©΄ μμ±μ λ΄λΆμμ μμ μ μμ±μλ₯Ό νΈμΆν μ μλ€.
μ°Έκ³ λ‘ thisλ μΈμ€ν΄μ€ μμ μ μ°Έμ‘°κ°μ κ°λ¦¬ν¨λ€. κ·Έλμ μμ μ μμ±μλ₯Ό νΈμΆνλ€κ³ μκ°νλ©΄ λλ€.
MemberConstruct - this( ) μ¬μ©
package construct;
public class MemberConstruct {
String name;
int age;
int grade;
MemberConstruct (String name, int age) {
this(name, age, 50);
}
MemberConstruct (String name, int age, int grade) {
System.out.println("μμ±μ νΈμΆ name: " + name + ", age: " + age + ", grade: " + grade);
this.name = name;
this.age = age;
this.grade = grade;
}
}
this( ) κ·μΉ
- this( )λ μμ±μ μ½λμ 첫 μ€μλ§ μμ±ν μ μλ€.
'π Java > π Java κ°μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Java κΈ°λ³ΈνΈ κ°μ_μ κ·Ό μ μ΄μ (3) | 2024.11.28 |
---|---|
Java κΈ°λ³ΈνΈ κ°μ_ν¨ν€μ§ (0) | 2024.11.26 |
Java κΈ°λ³ΈνΈ κ°μ_κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° (0) | 2024.11.26 |
Java κΈ°λ³ΈνΈ κ°μ_κΈ°λ³Ένκ³Ό μ°Έμ‘°ν (0) | 2024.11.26 |
Java κΈ°λ³ΈνΈ κ°μ_ν΄λμ€μ λ°μ΄ν° (1) | 2024.11.25 |