μ΄ κΈμ μνμ½λ©μ 'Java' κ°μ’λ₯Ό λ°νμΌλ‘ μ 리ν λ΄μ©μ λλ€.
κ°μ μ΄λ¦μ΄μ§λ§ μλ‘ λ€λ₯Έ 맀κ°λ³μμ νμμ κ°μ§ λ©μλλ₯Ό μ¬λ¬κ° μ μν μ μμ΅λλ€.
class Calculator{
int left, right;
int third = 0;
public void setOprands(int left, int right){
System.out.println("setOprands(int left, int right)");
this.left = left;
this.right = right;
}
public void setOprands(int left, int right, int third){
System.out.println("setOprands(int left, int right, int third)");
this.left = left;
this.right = right;
this.third = third;
}
public void sum(){
System.out.println(this.left+this.right+this.third);
}
public void avg(){
System.out.println((this.left+this.right+this.third)/3);
}
}
public class CalculatorDemo {
public static void main(String[] args) {
Calculator c1 = new Calculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.setOprands(10, 20, 30);
c1.sum();
c1.avg();
}
}
// output
// setOprands(int left, int right)
// 30
// 10
// setOprands(int left, int right, int third)
// 60
// 20
this.left = left;
this.right = right;
μ΄ λΆλΆμ΄ μ€λ³΅λλ―λ‘ μλμ κ°μ΄ μ½λλ₯Ό μμ ν μ μμ΅λλ€.
class Calculator{
int left, right;
int third = 0;
public void setOprands(int left, int right){
System.out.println("setOprands(int left, int right)");
this.left = left;
this.right = right;
}
public void setOprands(int left, int right, int third){
this.setOprands(left, right);
System.out.println("setOprands(int left, int right, int third)");
this.third = third;
}
public void sum(){
System.out.println(this.left+this.right+this.third);
}
public void avg(){
System.out.println((this.left+this.right+this.third)/3);
}
}
public class CalculatorDemo {
public static void main(String[] args) {
Calculator c1 = new Calculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.setOprands(10, 20, 30);
c1.sum();
c1.avg();
}
}
// output
// setOprands(int left, int right)
// 30
// 10
// setOprands(int left, int right)
// setOprands(int left, int right, int third)
// 60
// 20
μ΄λ₯Ό ν΅ν΄μ μ μ μλ κ²μ 맀κ°λ³μμ μ«μμ λ°λΌμ κ°μ μ΄λ¦μ, μλ‘ λ€λ₯Έ λ©μλλ₯Ό νΈμΆνκ³ μλ€λ κ²μ μ μ μμ΅λλ€.
μ΄λ¦μ κ°μ§λ§ μκ·Έλμ²λ λ€λ₯Έ λ©μλλ₯Ό μ€λ³΅μΌλ‘ μ μΈ ν μ μλ λ°©λ²μ λ©μλ μ€λ²λ‘λ©(overloading)μ΄λΌκ³ ν©λλ€.
μ€λ²λ‘λ©μ κ·μΉ
λ©μλ μ€λ²λ‘λ©μ 맀κ°λ³μλ₯Ό μ¬μ©ν©λλ€. μ¦ λ§€κ°λ³μκ° λ€λ₯΄λ©΄ μ΄λ¦μ΄ κ°μλ μλ‘ λ€λ₯Έ λ©μλκ° λλ κ²μ λλ€. λ°λ©΄μ 맀κ°λ³μλ κ°μ§λ§ 리ν΄νμ μ΄ λ€λ₯΄λ©΄ μ€λ₯κ° λ°μν©λλ€. μλμ μ½λλ₯Ό λ΄ μλ€.
public class OverloadingDemo {
void A (){System.out.println("void A()");}
void A (int arg1){System.out.println("void A (int arg1)");}
void A (String arg1){System.out.println("void A (String arg1)");}
//int A (){System.out.println("void A()");}
public static void main(String[] args) {
OverloadingDemo od = new OverloadingDemo();
od.A();
od.A(1);
od.A("coding everybody");
}
}
// output
// void A()
// void A (int arg1)
// void A (String arg1)
λ©μλμ μ΄λ¦μ κ°μμΌ νκ³ , 맀κ°λ³μλ λ¬λΌμΌ νμ§λ§ 리ν΄κ°μ κ°μμΌ ν©λλ€.
3νκ³Ό 4νμ λ©μλ Aλ 맀κ°λ³μμ μ«μκ° λ€λ¦ λλ€. 4νκ³Ό 5νμ λ©μλ Aλ μΈμμ μ«μλ κ°μ§λ§ 맀κ°λ³μμ λ°μ΄ν° νμ μ΄ λ€λ¦ λλ€. μ΄λ° κ²½μ°λ μ€λ²λ‘λ©μ΄ κ°λ₯ν©λλ€. λ©μλλ₯Ό νΈμΆ ν λ μ λ¬λλ μΈμμ λ°μ΄ν° νμ μ λ°λΌμ μ΄λ€ λ©μλλ₯Ό νΈμΆν μ§λ₯Ό μλ°κ° νλ¨ ν μ μκΈ° λλ¬Έμ λλ€. νμ§λ§ λ©μλμ λ°νκ°μ λ©μλλ₯Ό νΈμΆνλ μμ μμ μ λ¬λμ§ μλ μ 보μ΄κΈ° λλ¬Έμ μ€λ²λ‘λ©μ λμμ΄ λ μ μμ΅λλ€.
μμκ³Ό μ€λ²λ‘λ©
class OverloadingDemo {
void A (){System.out.println("void A()");}
void A (int arg1){System.out.println("void A (int arg1)");}
void A (String arg1){System.out.println("void A (String arg1)");}
}
public class OverloadingDemo2 extends OverloadingDemo{
void A (String arg1, String arg2){System.out.println("sub class : void A (String arg1, String arg2)");}
void A (){System.out.println("sub class : void A ()");}
public static void main(String[] args) {
OverloadingDemo2 od = new OverloadingDemo2();
od.A();
od.A(1);
od.A("coding everybody");
od.A("coding everybody", "coding everybody");
}
}
// output
// sub class : void A ()
// void A (int arg1)
// void A (String arg1)
// sub class : void A (String arg1, String arg2)
ν΄λμ€ OverloadingDemo2λ OverloadingDemoμ μμ λ°κ³ μμ΅λλ€. OverloadingDemo2μ 3νμμ μ μλ λ©μλ Aλ λ¬Έμμ΄μ λ°μ΄ν°νμ μΌλ‘ νλ λκ°μ 맀κ°λ³μλ₯Ό κ°μ§κ³ μμ΅λλ€. μ΄λ¬ν ννμ λ³μλ λΆλͺ¨ ν΄λμ€μμλ μ μλμ΄ μμ§ μκΈ° λλ¬Έμ λ©μλ μ€λ²λ‘λ©μ΄ λλ κ²μ λλ€. λ°λ©΄μ 4νμμ μ μλ λ©μλ Aλ 맀κ°λ³μκ° μμ΅λλ€. κ·Έλ¦¬κ³ λΆλͺ¨ ν΄λμ€μλ μ΄λ―Έ 맀κ°λ³μκ° μλ λ©μλ Aκ° μ‘΄μ¬ν©λλ€. μ΄ λμ 맀κ°λ³μμ ννκ° κ°κΈ° λλ¬Έμ μ€λ²λ‘λ©μ΄ μλλΌ μ€λ²λΌμ΄λ©μ ν΄λΉν©λλ€.
overriding VS overloading
μ€λ²λΌμ΄λ©κ³Ό μ€λ²λ‘λ©μ μ©μ΄κ° μ°ΈμΌλ‘ ν·κ°λ¦½λλ€. μ€μν κ²μ μ€λ²λΌμ΄λ©μ΄ 무μμ΄κ³ μ€λ²λ‘λ©μ΄ 무μμΈκ°λ₯Ό ꡬλΆνλ κ²μ μλλλ€. riding(μ¬λΌνλ€)μ μ΄μ©ν΄μ λΆλͺ¨ ν΄λμ€μ λ©μλμ λμλ°©λ²μ λ³κ²½νκ³ , loadingμ μ΄μ©ν΄μ κ°μ μ΄λ¦, λ€λ₯Έ 맀κ°λ³μμ λ©μλλ€μ μ¬λ¬κ° λ§λ€ μ μλ€λ μ¬μ€μ μλ κ²μ΄ μ€μν©λλ€. λ€λ§ νμ΅μ΄λ νμ μ κ³Όμ μμ κ°λ μ μ£Όκ³ λ°μ λλ μ©μ΄κ° μ€μν΄μ§λλ€. overλ₯Ό μ μΈνκ³ μμλλ©΄ λ ν·κ°λ¦¬μ§ μμκΉ μΆμ΅λλ€λ€. (μ°Έκ³ λ‘ overridingλ μ¬μ μλΌλ μ¬μ μ μΈ μλ―Έκ° μμ΅λλ€.)
'Programming > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] overriding μ€λ²λΌμ΄λ©μ΄λ? (0) | 2022.10.25 |
---|---|
[Java] μμκ³Ό μμ±μ (0) | 2022.10.25 |
[Java] μμ (0) | 2022.10.24 |
[Java] μ΄κΈ°νμ μμ±μ (0) | 2022.10.24 |