π λͺ μ λ‘ λ€μ보λ μλ°μ λ©λͺ¨λ¦¬ μ΄μΌκΈ° 2νΈ
λμ
λͺ μ λ‘ λ€μ보λ μλ°μ λ©λͺ¨λ¦¬ 1νΈμμ μμ±ν κ²κ³Ό κ°μ΄ μ’μ μ€λ ₯μ κ°μΆ κ°λ°μκ° λκΈ° μν΄μ λ¨μν μκΈ°μ μ½λκ° λμκ°λ€ λΏ μλλΌ μμ μ μ½λκ° μ»΄ν¨ν° λ΄λΆμμ μ΄λ»κ² λμνλμ§λ₯Ό μ΄ν΄ν΄μΌ ν©λλ€. 1νΈμμλ main(), λ³μ, block, static λ³μ, λ©ν° νλ‘μΈμ€, λ©ν° μ°λ λλ₯Ό μ΄ν΄λ³΄μμ΅λλ€. μκ³ μλ μΈμ΄μ λμκ³Ό λΉμ·ν΄μ μ΄λ ΅μ§ μμμ κ²μ λλ€. λ³Έ κΈμμλ μΆμν, μμ, λ€νμ± μ½λμ λν΄μ T λ©λͺ¨λ¦¬μ μ΄λ»κ² μ μ₯λλμ§ λ³Ό κ²μ λλ€.
μΆμνμ T λ©λͺ¨λ¦¬
public class Mouse {
public String name;
public void sing() { }
}
[Mouse.java]
public class Mouse {
public static void main(String [] args){
Mouse mickey = new Mouse();
mickey.name = "λ―Έν€";
mickey = null;
}
}
[MouseDriver.java]
- MouseDriver.javaμ public static void main(String [] args) κ° μ€νλκΈ° μ T λ©λͺ¨λ¦¬ μ€λ μ·μ μμ κ·Έλ¦Όκ³Ό κ°μ΅λλ€.
- java.lang ν¨ν€μ§μ ν΄λμ€λ€μ΄ T λ©λͺ¨λ¦¬μ μ€νν± μμμ λ°°μΉλ©λλ€.
- μμΈν 보면 nameμλ λ³μ μ μ₯ 곡κ°μ΄ 보μ΄μ§ μκ³ μ΄λ¦λ§ μ‘΄μ¬ν©λλ€.
- κ°μ²΄κ° μμ±λμ΄μΌλ§ μμ±μ κ°μ μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ 곡κ°μ΄ μ€νν± μμμ΄ μλ ν μμμ ν λΉλ©λλ€.
- κ°μ²΄ λ³μ mickeyκ° Mouse κ°μ²΄μ λν μ°Έμ‘° λ³μμ λλ€.
- κ°μ²΄ λ³μ mickeyκ° Mouse κ°μ²΄μ μ£Όμ(ν¬μΈν°)λ₯Ό κ°μ§κ³ μλ€λ κ²μ νμ΄νλ‘ ννν©λλ€.
- mickey = nullμ΄ μ€νλλ©΄ κ°μ²΄ μ°Έμ‘° λ³μ mickeyκ° λ μ΄μ ν μμμ μ‘΄μ¬νλ Mouse κ°μ²΄λ₯Ό μ°Έμ‘°νμ§ μμ΅λλ€.
- κ°λΉμ§ 컬λ ν°κ° μ무λ μ°Έμ‘°ν΄ μ£Όμ§ μλ Mouse κ°μ²΄λ₯Ό μ°λ κΈ°λ‘ μΈμ§νκ³ μκ±°ν΄ κ°λλ€.
- κ°λΉμ§ 컬λν°κ° λ€λ κ° T λ©λͺ¨λ¦¬ μνλ μμ κ·Έλ¦Όκ³Ό κ°μ΅λλ€.
μμκ³Ό T λ©λͺ¨λ¦¬
public class Animal {
public String name;
public void showName(){
System.out.println("μλ
λλ %sμΌ.", name );
}
}
[Animal.java]
public class Penguin extends Animal {
public String habitat;
public void showHabitat(){
System.out.printf("%sλ $sμ μ΄μ", name, habitat);
}
}
[Penguin.java]
public class Driver {
public static void main(String [] args){
Penguin pororo = new Penguin();
pororo.name = "λ½λ‘λ‘";
poeoeo.habitat = "λ¨κ·Ή";
pororo.showName();
pororo.showHabitat();
Animal pingu = new Penguin();
pingu.name = "νꡬ";
//pingu.habitat = "EBS";
pingu.showName();
//pingu.showHabitat();
}
}
[Driver.java]
- Penguin ν΄λμ€μ μΈμ€ν΄μ€λ§ ν μμμ μκΈ°λ κ²μ΄ μλλΌ Animal ν΄λμ€μ μΈμ€ν΄μ€λ ν¨κ» ν μμμ μκΉλλ€.
- κ·Έλ¦Όμμλ μλ΅λμμ§λ§ λͺ¨λ ν΄λμ€μ μ΅μμ ν΄λμ€μΈ Object ν΄λμ€μ μΈμ€ν΄μ€λ ν¨κ» μμ±λ©λλ€.
- pingu κ°μ²΄ μ°Έμ‘° λ³μκ° κ°λ¦¬ν€κ³ μλ κ²μ Penguin μΈμ€ν΄μ€κ° μλ Animal μΈμ€ν΄μ€μ λλ€.
- pingu κ°μ²΄ μ°Έμ‘° λ³μλ μ¬μ€ νκ·μ΄μ§λ§ λλ¬Όμ΄λΌλ κ²λ§ μΈμνκ³ μμ΅λλ€.
- λ°λΌμ pingu κ°μ²΄ μ°Έμ‘° λ³μλ habitat μμ±κ³Ό showHabitat() λ©μλλ₯Ό μ¬μ©ν μ μμ΅λλ€.
λ€νμ±κ³Ό T λ©λͺ¨λ¦¬
public class Animal {
public String name;
public void showName(){
System.out.println("μλ
λλ %sμΌ.", name );
}
}
[Animal.java]
public class Penguin extends Animal {
public String habitat;
public void showHabitat(){
System.out.printf("%sλ $sμ μ΄μ", name, habitat);
}
// μ€λ² λΌμ΄λ© - μ¬μ μ: μμ ν΄λμ€μ λ©μλμ κ°μ λ©μλ μ΄λ¦, κ°μ μΈμ 리μ€νΈ
public void showName(){
System.out.println("λ΄ μ΄λ¦μ λΉλ°μ
λλ€.");
}
// μ€λ²λ‘λ© - μ€λ³΅μ μ: κ°μ λ©μλ μ΄λ¦, λ€λ₯Έ μΈμ 리μ€νΈ
public void showName(String yourName){
System.out.println("%s μλ
, λλ $sλΌκ³ ν΄.", yourName, name);
}
}
[Penguin.java]
public class Driver {
public static void main(String [] args){
Penguin pororo = new Penguin();
pororo.name = "λ½λ‘λ‘";
poeoeo.habitat = "λ¨κ·Ή";
pororo.showName();
pororo.showName("μ΄λ³΄λ보");
pororo.showHabitat();
Animal pingu = new Penguin();
pingu.name = "νꡬ";
pingu.showName();
}
}
[Driver.java]
μ΄λ¨Έ λ΄ μ΄λ¦μ μμμ λνκ²μ?
μ΄λ³΄λ보 μλ
, λλ λ½λ‘λ‘λΌκ³ ν΄
λ½λ‘λ‘λ λ¨κ·Ήμ μ΄μ
μ΄λ¨Έ λ΄μ΄λ¦μ μμμ λνκ²μ?
[μ€νκ²°κ³Ό]
μμ μ½λ μ€ν κ²°κ³Όλ μμ κ°μ΅λλ€.
- pororo.showName(); λΆλΆμ μ€ννλ©΄ Animal κ°μ²΄μ μλ showName() λ©μλλ Penguin κ°μ²΄μ μλ showName() λ©μλμ μν΄ μ¬μ μ, μ¦ κ°λ €μ‘κΈ°μ Penguin κ°μ²΄μμ μ¬μ μν showName() λ©μλκ° νΈμΆλ©λλ€.
- T λ©λͺ¨λ¦¬μμ μ£Όμν΄μΌ ν κ²μ pingu κ°μ²΄ μ°Έμ‘° λ³μλ νμ μ΄ Animal νμ μ΄λΌλ κ²μ λλ€.
- Animal κ°μ²΄μ showName()μ Penguin κ°μ²΄μ showName()μ μν΄ κ°λ €μ Έ μμ΅λλ€. λ°λΌμ 17λ²μ§Έ μ€μ pingu.showName() λ©μλλ₯Ό μ€ννλ©΄ Animal κ°μ²΄μ μ μλ showName() λ©μλκ° μλ Penguin κ°μ²΄μ μν΄ μ μλ showName() λ©μλκ° μ€νλ©λλ€.
- μμ ν΄λμ€ νμ μ κ°μ²΄ μ°Έμ‘° λ³μλ₯Ό μ¬μ©νλλΌλ νμ ν΄λμ€μμ μ€λ²λΌμ΄λ©(μ¬μ μ)ν λ©μλκ° νΈμΆλ©λλ€.
'Computer Science > Java-Spring' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ‘μΌ νμ΅] μ€νλ§λΆνΈ CRUD REST API (JPA, MySQL, Gradle) (31) | 2021.05.19 |
---|---|
[μ€νλ§ μν리ν°] λλ²κΉ λ‘κ·Έ μΆλ ₯ λ°©λ² (0) | 2021.04.25 |
πλͺ μ λ‘ λ€μ보λ μλ°μ λ©λͺ¨λ¦¬ μ΄μΌκΈ° 1νΈ (1) | 2020.03.23 |
πλͺ μ λ‘ λ€μ보λ κ°μ²΄μ§ν₯ μ΄μΌκΈ° (0) | 2020.03.22 |
μ΄ν΄λ¦½μ€μμ Javaμ Githubμ μ₯μ μ°κ²°νκΈ° (0) | 2017.08.14 |