μ°Έμ‘° μλ£ν - κΈ°λ³Έ μμ±μ, μ€λ²λ‘λ©(overloading), return
μλ νμΈμ,
μ΄λ² μκ°μλ μ°Έμ‘°μλ£νμ λν΄ μμλ³΄κ² μ΅λλ€.
ν΄λΉ λ΄μ©μ 'μλ°μ μ ' chapter8λ₯Ό κΈ°μ΄λ‘ μμ±νμΌλ©°,
μ΄λ₯Ό κΈ°λ°μΌλ‘ μ λλ¦μ μμ½ μ 리λ₯Ό ν κΈμ λλ€.
μμΈν 곡λΆλ₯Ό μν΄μλ
λ¨Όμ μ± μ μ½κ³ , μ 리μ©μΌλ‘ μ°Έκ³ νμλ©΄ λ² μ€νΈμΌ κ² κ°μ΅λλ€!
κΈ°λ³Έμλ£νκ³Ό μ°Έμ‘°μλ£νμ κΈ°λ³Έμ λν λ΄μ©μ μ΄μ κ²μκΈμ νμΈνμλ©΄ λ©λλ€ :)
https://mong-dev.tistory.com/11
λ³μ μ΄μΌκΈ°(2) - μλ°μ νμ (μλ£ν)
μλ νμΈμ, μ΄λ² μκ°μλ μλ°μ λκ°μ§ μλ£νμ λν΄ μμλ³΄κ² μ΅λλ€. ν΄λΉ λ΄μ©μ 'μλ°μ μ ' chapter4λ₯Ό κΈ°μ΄λ‘ μμ±νμΌλ©°, μ΄λ₯Ό κΈ°λ°μΌλ‘ μ λλ¦μ μμ½ μ 리λ₯Ό ν κΈμ λλ€. μμΈν 곡
mong-dev.tistory.com
μ°Έμ‘°μλ£νμ 곡λΆνλ©΄μ λ€μκ³Ό κ°μ΄ μ΄ 7κ°μ§μ λν΄ μ 리ν μμ μΈλ°, κ°λ μ±μ μν΄ 3κ°μ§λ§ λ¨Όμ μμ±νκ³ , λλ¨Έμ§λ λ€μκΈλ‘ λκΈ°κ² μ΅λλ€ :)
β£ κΈ°λ³Έμμ±μ
β£ λ©μλ overloading
β£ return (λ©μλμμ κ° λ겨주기)
β‘ static λ©μλμ μΌλ° λ©μλμ μ°¨μ΄
β‘ static λΈλ‘
β‘ Pass by value, Pass by reference
β‘ λ§€κ° λ³μλ₯Ό μ§μ νλ νΉμ΄ν λ°©λ²
κΈ°λ³Έμμ±μ
μλ°λ μμ±μλ₯Ό λ§λ€μ§ μμλ μλμΌλ‘ λ§λ€μ΄μ§λ κΈ°λ³Έ μμ±μκ° μμ΅λλ€.
λ€μ μμ€λ₯Ό 보며 λͺκ°μ§ νΉμ§μ λ§μλλ¦¬κ² μ΅λλ€.
public class ReferenceString {
//1. κΈ°λ³Έ μμ±μ
public ReferenceString() {
}
//2. String argλ₯Ό 맀κ°λ³μλ‘ ν μμ±μ
public ReferenceString(String arg) {
}
//λ©μΈ λ©μλ
public static void main(String args[]) {
ReferenceString reference = new ReferenceString();
}
}
λ©μΈ λ©μλλ₯Ό 보면, μ°λ¦¬κ° κ°μ²΄λ₯Ό μμ±ν λ new λ€μμ μλ ReferenceString()κ° μμ±μμ λλ€.
λ§μ½μ 1λ²κ³Ό 2λ²μ΄ μ무κ²λ μ ν μμ§ μμ μν©μ΄λΌλ©΄, 1λ²μ κΈ°λ³Έμμ±μλ‘ μμ±λλ€. μ¦, μλ¬΄λ° λ§€κ° λ³μκ° μλ ReferenceDefault()λΌλ μμ±μλ λ€λ₯Έ μμ±μκ° μμ κ²½μ° κΈ°λ³ΈμΌλ‘ μ»΄νμΌν λ λ§λ€μ΄μ§λλ€.
λν 1,2λ²μ²λΌ μμ±μλ 리ν΄νμ μ΄ μκ³ , ν΄λμ€ μ΄λ¦μΌλ‘ λμ΄ μμ΅λλ€.
κ·Έλ°λ°, λ§μ½μ 1λ²μ΄ μκ³ 2λ²λ§ μμ κ²½μ°μλ, λ©μΈ λ©μλμμ μ λ κ² νΈμΆν κ²½μ°, μ»΄νμΌ μλ¬κ° λ°μν©λλ€. λ€μ λ§ν΄μ, κΈ°λ³Έ μμ±μλ λ€λ₯Έ μμ±μκ° μμΌλ©΄ μλμΌλ‘ λ§λ€μ΄μ§μ§ μμ΅λλ€.
μμ±μλ ν΄λμ€μ λ€λ₯Έ λ©μλλ€ λ³΄λ€ μμ, κ°μ₯ μλΆλΆμ μ μΈνλ κ²μ΄ μ’μ΅λλ€.
κ·ΈλΌ μμ±μλ λͺκ°κΉμ§ λ§λ€ μ μμκΉμ?
μ λ΅μ μμ±μμ κ°―μμλ μ νμ΄ μμ΅λλ€. ν΄λμ€μ κ°μ²΄λ₯Ό λ³΄λ€ κ°νΈνκ² λ§λ€κΈ° μν΄μ μ¬λ¬κ°μ§ λ§€κ° λ³μλ₯Ό κ°λ μ¬λ¬ μμ±μλ₯Ό κ°μ§ μ μμΌλ©°, κ°―μλ 1κ°μ¬λ λκ³ 100κ°κ° λμ΄λ μκ΄μ΄ μλ€. λ€λ§, λ무 λ§μ΄ λ§λλ κ²½μ° κ΄λ¦¬κ° νλ€μ΄μ§λ―λ‘, κΌ νμμ λ§λ μμ±μλ§ λ§λλ μ΅κ΄μ λ€μ¬μΌλ§ ν©λλ€.
λ©μλ μ€λ²λ‘λ©(overloading)
μμμ μ΄ν΄λ³Έ κ²μ²λΌ ν΄λμ€μ μμ±μλ λ§€κ° λ³μλ€μ μλ‘ λ€λ₯΄κ² νμ¬ μ μΈν μ μμ΅λλ€. κ·Έλ λ€λ©΄ λ©μλλ μ΄λ κ² μ΄λ¦μ κ°κ² νκ³ λ§€κ° λ³μλ€μ λ€λ₯΄κ² νμ¬ λ§λ€ μ μμκΉμ? λΉμ°ν κ°λ₯ν©λλ€.
public class ReferenceOverloading {
public static void main(String args[]) {
ReferenceOverloading reference = new ReferenceOverloading();
}
//1.
public void print(int data) {
}
//2.
public void print(String data) {
}
//3.
public void print(int intData, String stringData) {
}
//4.
public void print(String stringData, int intData) {
}
}
μμ 4κ°μ§ λ©μλλ μ΄λ¦μ λμΌ νμ§λ§, λͺ¨λ λ€λ₯Έ λ©μλμ²λΌ μΈμλλ€. ν΅μ¬ μ°¨μ΄λ λ§€κ° λ³μμ μ’ λ₯, κ°μ, μμκ° λ€λ₯΄λ€λ κ²μ΄λ€. λ§€κ° λ³μμ κ°μκ° κ°μλ νμ μ μμκ° λ€λ₯΄λ©΄ λ€λ₯Έ λ©μλμ²λΌ μΈμλλ€. μ¬κΈ°μ μ€μν κ²μ λ§€κ° λ³μμ μ΄λ¦μ΄ μλλΌ λ§€κ° λ³μμ νμ μ΄λ€. (맀κ°λ³μμ νμ μ΄ κ°κ³ λ³μμ μ΄λ¦μ΄ λ€λ₯΄λ©΄? κ°μ λ©μλλ‘ μΈμνλ€.)
μ΄μ κ°μ΄ λ©μλμ μ΄λ¦μ κ°λλ‘νκ³ , λ§€κ° λ³μλ§μ λ€λ₯΄κ² νλ κ²μ λ°λ‘ μ€λ²λ‘λ©(overloading)μ΄λΌκ³ ν©λλ€.
overloadλ "κ³Όμ νλ€. λΆνλ₯Ό μ£Όλ€." μ΄λ° μλ―Έκ° μλ λ¨μ΄μΈλ°μ, λ€μ λ§ν΄μ νλμ λ©μλ μ΄λ¦μ μ¬μ©νλ©΄μ μ¬λ¬ κΈ°λ₯μ μ 곡νλ€ νΉμ νλμ λ©μλ μ΄λ¦μΌλ‘ λ§μ λΆνλ₯Ό μ€λ€λΌκ³ μκ°ν΄λ³Όμλ μκ² μ΅λλ€.
κ°μ₯ μ¬μ΄ μλ₯Ό λ€μλ©΄, System.out.println()μ΄λΌλ λ©μλλ₯Ό μκ°ν΄λ³΄λ©΄ μ½μ΅λλ€. μ΄ λ©μλμ λ§€κ° λ³μλ‘, intλ§μ μ£Όλ, longλ§μ μ£Όλ, Stringλ§μ μ€λ λ©λλ€. intκ°μ μΆλ ₯ν΄μΌνλ€κ³ ν΄μ, System.out.printInt() μ΄λ°μμΌλ‘ λ³κ°μ λ©μλλ₯Ό μ¬μ©νμ§ μμ΅λλ€. μ΄κ² λ°λ‘ μ€λ²λ‘λ©μ μμ μ λλ€.
return
returnμ λ©μλμ κ°μ 리ν΄ν λ μ¬μ©νκ±°λ, 리ν΄κ°μ΄ μλ void λ©μλμΈ κ²½μ°μλ λ©μλμ μ’ λ£μ μλ―Έλ‘λ μ¬μ©ν μ μμ΅λλ€. κ°λ¨νκ² μ½λλ₯Ό 보면 λ μ΄ν΄κ° μ½μ΅λλ€.
public class ReferenceReturn {
public static void main(String args[]) {
ReferenceReturn reference = new ReferenceReturn();
System.out.println(reference.intReturn());
System.out.println(reference.intArrayReturn());
System.out.println(reference.stringReturn());
}
public int intReturn() {
int returnInt=0;
return returnInt;
}
public int intArrayReturn() {
int returnArray[]=new int[10];
return returnArray;
}
public String stringReturn() {
String returnString="Return value";
return returnString;
}
}
μ€μ λ‘λ κ° λ©μλμμ κ³μ° μμ μ΄λ λ°μ΄ν° μ²λ¦¬λ₯Ό κ±°μΉ νμ 리ν΄μ ν΄μ£Όμ΄μΌ νμ§λ§, μμλ‘ κ°λ¨ν μ΄κΈ°νλ§ νκ³ λ¦¬ν΄ν΄μ£Όμμ΅λλ€.
- λ©μλ μ΄λ¦ μμ λ³μμ νμ μ μ§μ ν΄ μ£Όκ³ ,
- λ©μλ λ΄μμλ κ·Έ νμ μ μμ±νκ³ κ°κ³΅ν ν
- "return"μ΄λΌλ μμ½μ΄λ₯Ό μ¬μ©νμ¬ λ¦¬ν΄ν΄ μ£Όλ©΄
- μμ²ν λ©μλλ‘ κ·Έ κ°μ΄ μ λ¬λ©λλ€.
μ°Έκ³ λ‘ κΉλ¨Ήκ³ 리ν΄μ ν΄μ£Όμ§ μμ κ²½μ°, μ»΄νμΌ μλ¬κ° λ°μν©λλ€.
μμμ λ§μλλ Έλ―μ΄, returnμ μ΄λ κ² κ°μ 리ν΄νκΈ°λνμ§λ§, λ©μλμ μ’ λ£μ μλ―Έλ‘λ μ¬μ©νλ€κ³ νμ΅λλ€. returnμ μ§λκ² λλ©΄ λ©μλλ μ’ λ£νκ² λλλ°, κ·ΈλΌ return λ€μ μ½λκ° μλ€λ©΄ μ΄λ»κ² λ κΉμ? λ§μ΅λλ€. κ·Έ λ€μ μλ μ½λλ μ λ μ€νλ μΌμ΄ μκΈ° λλ¬Έμ "unreachable statement"λΌλ λ©μΈμ§μ ν¨κ» μ»΄νμΌ μλ¬κ° λ°μν©λλ€.
κ·ΈλΌ νλμ λ©μλλ νλμ νμ μ κ°λ§ 리ν΄ν΄μ£Όλλ°, μ¬λ¬ κ°λ₯Ό λ겨 μ£Όκ³ μΆμ λ μ΄λ»κ² ν κΉμ?
DTOμ κ°μ ν¨ν΄μ λ¦¬ν΄ νμ μΌλ‘ μ μΈν΄μ£Όλ©΄, μ¬λ¬ κ°μ λ°μ΄ν°λ₯Ό νλμ νμ μ λ£μ΄μ λκ²¨μ€ μ μκ² μ΅λλ€. (DTO : Data Transfer Object, λ°μ΄ν°λ₯Ό λ€λ₯Έ μλ²λ‘ μ λ¬νκΈ° μν λͺ©μ μΌλ‘ μ°μ΄λ μλ° ν¨ν΄. μ΄λ€ μμ±μ κ°λ ν΄λμ€λ₯Ό λ§λ€κ³ , κ·Έ μμ±λ€μ μ½κ² μ λ¬νκΈ° μν΄μ λ§λ λ€.)
λν 리ν΄κ°μ΄ μλ void λ©μλμμλ return λ€μ μ무κ²λμμ΄ λ°λ‘ μΈλ―Έμ½λ‘ μ μ μ΄μ£Όλ©΄, λ©μλ μ’ λ£μ μλ―Έλ‘ μ¬μ©ν μ μμ΅λλ€. κ°λ¨νκ² μ½λλ‘ λ³΄μ¬λλ¦¬κ² μ΅λλ€.
public void wantToStopInTheMiddle(boolean flag) {
//μ½λ μλ΅
.
.
.
if(flag) return;
//μ½λ μλ΅
.
.
.
}
κΈμ΄ κΈΈμ΄μ Έ, λ€μ κ²μκΈλ‘ λμ΄κ°λλ‘ νκ² μ΅λλ€ :)
κ°μ¬ν©λλ€!
https://mong-dev.tistory.com/13
μ°Έμ‘°μλ£ν - static λ©μλμ μΌλ° λ©μλμ μ°¨μ΄, static λΈλ‘, Pass by value, Pass by reference, νΉμ΄ν 맀
μλ νμΈμ, μ΄λ² μκ°μλ μ°Έμ‘°μλ£νμ λν΄ μ΄μ΄μ κ³μ μμλ³΄κ² μ΅λλ€. β‘ κΈ°λ³Έμμ±μ β‘ λ©μλ overloading β‘ return (λ©μλμμ κ° λ겨주기) β£ static λ©μλμ μΌλ° λ©μλμ μ°¨μ΄ β£ s
mong-dev.tistory.com