π μμ±μ Constructor
μΈμ€ν΄μ€κ° μμ±λ λ νΈμΆλλ 'μΈμ€ν΄μ€ μ΄κΈ°ν λ©μλ', μΈμ€ν΄μ€ λ³μμ μ΄κΈ°ν μμ μ μ¬μ©λλ©°, μΈμ€ν΄μ€ μμ± μμ μ€νλμ΄μΌ ν μμ μ μν΄μλ μ¬μ©λλ€.
μμ±μμ 쑰건 λ° νΉμ§
π- μΌλ°μ μΌλ‘ μ΄λμλ ν΄λμ€μ λν κ°μ²΄ μμ±μ΄ κ°λ₯νλλ‘ 'public'μΌλ‘ μ§μ .
- κ°μ²΄λ₯Ό μμ±ν λ new ν€μλμ ν¨κ» λ ΈμΆ (κ°μ²΄ μμ± μΈμλ νΈμΆν μ μμ)
- μΈμ€ν΄μ€λ₯Ό μ΄κΈ°ν νλ μ½λκ° κ΅¬νλ¨ (μ£Όλ‘ λ©€λ² λ³μ μ΄κΈ°ν)
- λ°ν κ°μ΄ μμ(μ΄κΈ°νλ₯Ό λͺ©μ μΌλ‘ νκΈ° λλ¬Έμ), μμλμ§ μμ.
- μμ±μλ ν΄λμ€ μ΄λ¦κ³Ό λμΌ.
π μμ±μ μμ± κ³Όμ λ¨Όμ μ°μ°μ newμ μν΄μ λ©λͺ¨λ¦¬(heap)μ ν΄λΉ ν΄λμ€μ μΈμ€ν΄μ€κ° μμ±λλ€. κ·Έ ν, μμ±μκ° νΈμΆλμ΄ μνλκ³ μ°μ°μ newμ κ²°κ³Όλ‘ μμ±λ μΈμ€ν΄μ€μ μ£Όμκ° λ°νλμ΄ μ°Έμ‘°λ³μμ μ μ₯λλ€.
π thisμ this()
- this : νΈμΆ μ ν΄λμ€ μ΄λ¦ λμ μ¬μ©νλ μμ½μ΄, μΈμ€ν΄μ€ μμ μ κ°λ¦¬ν€λ κ·Έ μ£Όμκ° μ μ₯λμ΄μλ μ°Έμ‘°λ³μλ₯Ό μ§μΉνλ©° λͺ¨λ μΈμ€ν΄μ€ λ©μλμμ μ¨κ²¨μ§ μ±λ‘ μ‘΄μ¬νλ€.
- this() : κ°μ ν΄λμ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λ μ¬μ©νλ€.
π κΈ°λ³Έμμ±μ(default constructor)
- ν΄λΉ ν΄λμ€λ₯Ό newν λ μ¬μ©ν κΈ°λ³Έ μμ±μλ₯Ό λ»ν¨.
- κΈ°λ³Έ μμ±μμ λ©€λ²λ³μλ μμ±μκ° ν λ©λͺ¨λ¦¬μ ν λΉμ΄ λ λ, JVMμ΄ κΈ°λ³Έκ°μΌλ‘ κΈ°λ³Έ μμ±μμ λ©€λ²λ³μλ₯Ό μ΄κΈ°νν¨.
- νλμ ν΄λμ€μλ λ°λμ νλ μ΄μμ μμ±μκ° μ‘΄μ¬ν΄μΌν¨.
- νλ‘κ·Έλλ¨Έκ° μμ±μλ₯Ό ꡬννμ§ μμΌλ©΄ μ»΄νμΌλ¬κ° μμ±μ μ½λλ₯Ό λ£μ΄μ€. => κΈ°λ³Έ μμ±μ
- κΈ°λ³Έ μμ±μλ λ§€κ° λ³μκ° μκ³ , ꡬνλΆκ° μμ
κΈ°λ³Έ μμ±μ
public class Student {
public int studentID;
public String studentName;
public String address;
public Student(){ //μ΄ μμμλ Studentμ μΈμ€ν΄μ€ λ³μκ° λ΄λΆμ μΌλ‘ μ΄κΈ°κ°μΌλ‘ ꡬνλλ€.
(intλ 0, Stringμ null κ° .... λ±μΌλ‘! }
}
ν΄λμ€μ λ€λ₯Έ μμ±μκ° μλ κ²½μ° λν΄νΈ μμ±μλ μ 곡λμ§ μμ
public class Student {
public int studentID; // μ¬κΈ° λ³μλ€μ μΈμ€ν΄μ€ μμ±μ, ν λ©λͺ¨λ¦¬μ ν λΉν λ μλ μ΄κΈ°νλλ€
public String studentName; // λ³΄ν΅ int = 0 , String = null λ‘.
public String address; // μ λ¬λ°μ κ°μ΄ μλ€λ©΄ κ·Έ κ°μΌλ‘.
// public Student(){}
public Student(int id, String name){
studentID = id;
studentName = name;
}
}
λ€λ₯Έ μμ±μλ₯Ό λ§λ€κ²½μ° mainμμμ μ€λ₯
public class StudentTest {
public static void main(String[] args) {
Student studentLee = new Student(); // μ€λ₯μ§μ
studentLee.studentName = "Jenny";
studnetLee.address = "νλ¨λ";
}
}
ꡬνν λ λ°λμ νμν λ©μλκ° νμν κ²½μ°("μ΄λ¦μ λ°λμ λ§€λ² κ΅¬νμ ν κ±°μΌ")
public class Student {
public int studentID;
public String studentName;
public String address;
public Student(String name){
studentName = name;
}
public static void main(String[] args) {
Student studentLee = new Student(Jenny); //studentLee.studentName = "Jenny"; νμμμ. νμ λ©μλλ‘ κ΅¬νν΄λμκΈ°λλ¬Έ.
studnetLee.address = "νλ¨λ";
}
}
μμ±μ μ€λ²λ‘λ© Constructor Overroding
πν΄λμ€μ λν κ°μ²΄λ₯Ό new μμ±ν λ, μ΄κΈ°κ°μ μ£Όλ λ°©λ²μ λ€μνμν€κ³ μΆμ λ μ¬μ©νλ€. μ€λ²λ‘λ©μ λͺ©μ : λ€μν κ°μ μ²λ¦¬λ°©μμ νλμ μ΄λ¦μΌλ‘ λ€λ£¨κ³ μ ν λ.
- μμ±μλ₯Ό λ κ° μ΄μ ꡬννλ κ²½μ°
- κΈ°λ³Έ μμ±μ, 맀κ°λ³μ μλ μμ±μ μ€λ³΅μΌ λ Overriding νκ²μ. => 맀κ°λ³μκ° λ°λμ λ¬λΌμΌνλ€. 맀κ°λ³μμ κ°―μ, μλ£νμ μμμ λ°λΌ μ¬λ¬κ°μ μμ±μλ₯Ό λ§λ€ μμλ€.
- μ¬μ©νλ μ½λμμ μ¬λ¬ μμ±μ μ€ μ ννμ¬ μ¬μ©ν μ μμ.
- private λ³μλ μμ±μλ₯Ό μ΄μ©νμ¬ μ΄κΈ°νλ₯Ό ν μλ μμ(κ°μ²΄ μ΄κΈ°ν μμ μ ν λ μμ±μλ₯Ό κ°μ Έλ€ μ°κΈ°λ ν¨).
μμ±μ μ€λ²λ‘λ© Constructor Overroding
public class Student {
public int studentID;
public String studentName;
public String address;
public Student(String name){
studentName = name;
}
public Student(int id, String name, String address){
studentID = id;
studentName = name;
this.address = address;
}
public void showStudentInfo(){
System.out.println(studentName+ "," +address);
}
public String getStudentName(){
return studentName;
}
public static void main(String[] args) {
Student studentKim = new Student("Jenny"); //studentKim.studentName = "Jenny"; νμλ©μλλ‘ κ΅¬ν
studentKim.address = "νλ¨λ";
studentKim.showStudentInfo();
Student studentBlack = new Student(100,"λΈλνν¬","ν©μ λ"); //studentBlack.studentName = "λΈλνν¬"; νμλ©μλλ‘ κ΅¬ν
//studentBlack.address = "ν©μ λ"; νμλ©μλλ‘ κ΅¬ν
studentBlack.showStudentInfo();
}
}
'μ΄λ‘ > Study' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ κ·Όμ μ΄μμ μ 보μλ (0) | 2021.07.20 |
---|---|
μ°Έμ‘°μλ£ν reference data type (0) | 2021.07.19 |
κ°μ²΄ μ§ν₯ μΈμ΄μ λ©λͺ¨λ¦¬ ꡬ쑰μ νΉμ§ OOP Memory (0) | 2021.07.15 |
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° Object-Oriented Programming(OOP)μ΄λ (0) | 2021.07.15 |
[JAVA] κ°μ²΄μ§ν₯ 5λμμΉ / POJO JAVA (0) | 2021.06.03 |