π μλν μ¬μ 12μΌ μ°¨ β Javaμμ λ€νμ± μ΄ν΄
Source: Dev.to
π λ€νμ±μ΄λ?
λ€νμ±μ βμ¬λ¬ ννβλ₯Ό μλ―Έν©λλ€. Javaμμλ κ°μ λ©μλ μ΄λ¦μ΄ μ λ¬λ λ§€κ°λ³μμ λ°λΌ λ€λ₯΄κ² λμνκ² ν©λλ€.
Javaμ λ κ°μ§ λ€νμ± μ ν
1οΈβ£ μ»΄νμΌβνμ λ€νμ± (Method Overloading)
2οΈβ£ λ°βνμ λ€νμ± (Method Overriding)
μ€λμ Method Overloadingμ μ§μ€νμ΅λλ€.
π λ©μλ μ€λ²λ‘λ©μ΄λ?
λ©μλ μ€λ²λ‘λ©μ λ€μμ μλ―Έν©λλ€:
- κ°μ λ©μλ μ΄λ¦
- μΈμμ κ°μκ° λ€λ¦
- μΈμμ νμ μ΄ λ€λ¦
- λ§€κ°λ³μ μμκ° λ€λ¦
μμ μκ·Έλμ²
debitamount(int amount, int pin)
debitamount(long amount, int pin, String name, double balance)
λ©μλ μ΄λ¦μ λμΌνμ§λ§ λ§€κ°λ³μ λͺ©λ‘μ΄ λ€λ₯΄κΈ° λλ¬Έμ Javaλ μ΄λ₯Ό λ³κ°μ λ©μλλ‘ μ·¨κΈν©λλ€.
π» μμ νλ‘κ·Έλ¨ β ATM κ±°λ
package polymorphism;
public class ATM {
public static void main(String[] args) {
ATM sbi = new ATM();
sbi.debitamount(1000, 123);
ATM icici = new ATM();
icici.debitamount(3000, 6364, "Rajiv", 10.23);
}
void debitamount(int amount, int pin) {
System.out.println("SBI Bank successfully debited " + amount);
}
void debitamount(long amount, int pin, String name, double balance) {
System.out.println("ICICI Bank successfully debited " + amount + " for " + name);
}
}
π μ½λ μ€λͺ
Stepβ―1 β νλ‘κ·Έλ¨ μ€ν μμ
Javaλ main() λ©μλμμ μ€νμ μμν©λλ€:
public static void main(String[] args)
Stepβ―2 β κ°μ²΄ μμ±
ATM sbi = new ATM();
- ATM β ν΄λμ€ μ΄λ¦
- sbi β μ°Έμ‘° λ³μ
new ATM()β ν λ©λͺ¨λ¦¬μ κ°μ²΄λ₯Ό μμ±
Stepβ―3 β 첫 λ²μ§Έ λ©μλ νΈμΆ
sbi.debitamount(1000, 123);
Javaλ μκ·Έλμ² (int, int)μΈ λ©μλλ₯Ό μ°Ύμ μ€νν©λλ€:
void debitamount(int amount, int pin)
μΆλ ₯
SBI Bank successfully debited 1000
Stepβ―4 β λ λ²μ§Έ κ°μ²΄ μμ±
ATM icici = new ATM();
λ λ²μ§Έ κ°μ²΄κ° μμ±λ©λλ€.
Stepβ―5 β μ€λ²λ‘λλ λ©μλ νΈμΆ
icici.debitamount(3000, 6364, "Rajiv", 10.23);
Javaλ μ΄μ μκ·Έλμ² (long, int, String, double)μΈ λ©μλλ₯Ό μ°Ύμ μ€νν©λλ€:
void debitamount(long amount, int pin, String name, double balance)
μΆλ ₯
ICICI Bank successfully debited 3000 for Rajiv
π§ Javaκ° μ΄λ€ λ©μλλ₯Ό νΈμΆν μ§ κ²°μ νλ λ°©λ²
μ»΄νμΌλ¬λ λ€μμ νμΈν©λλ€:
1οΈβ£ Method name β λ©μλ μ΄λ¦
2οΈβ£ Number of parameters β λ§€κ°λ³μ κ°μ
3οΈβ£ Data types of parameters β λ§€κ°λ³μμ λ°μ΄ν° νμ
μ΄ κ³Όμ μ CompileβTime Method Bindingμ΄λΌκ³ νλ©°, κ²°μ μ΄ μ»΄νμΌ μ€μ μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ λλ€.
π μ°μ΅ μ€ μ€μν λ°κ²¬
1οΈβ£ μ μ κΈ°λ³Έ νμ
100κ³Ό κ°μ 리ν°λ΄μ κΈ°λ³Έμ μΌλ‘ intλ‘ κ°μ£Όλ©λλ€.
2οΈβ£ Byte / Short μλ νμ© μ λ¨
byte balance = 100; // error: possible lossy conversion from int to byte
λͺ μμ νλ³νμ΄ νμν μ μμ΅λλ€:
byte balance = (byte) 100;
3οΈβ£ Long κ°
long 리ν°λ΄μλ λ³΄ν΅ Lμ λΆμ
λλ€:
long amount = 3000L;
νμν λ Javaλ intλ₯Ό longμΌλ‘ μλ μΉκ²©μν¬ μλ μμ΅λλ€.
4οΈβ£ μμμ μ«μ
10.23κ³Ό κ°μ 리ν°λ΄μ κΈ°λ³Έμ μΌλ‘ doubleμ
λλ€. floatμ μ μ₯νλ €λ©΄ fλ₯Ό λΆμ
λλ€:
float balance = 10.23f;
doubleμ κΈ°λ³Έκ°μ΄λ―λ‘ μ λ―Έμ¬ μμ΄λ μ¬μ©ν μ μμ΅λλ€.
π Javaμ μ«μ κΈ°λ³Έκ° μμ½
| κ° | κΈ°λ³Έ νμ |
|---|---|
100 | int |
100L | long |
10.5 | double |
10.5f | float |
Javaμμλ μ μ 리ν°λ΄μ΄ κΈ°λ³Έμ μΌλ‘ intμ
λλ€. μ΄λ₯Ό byteλ shortμ κ°μ λ μμ νμ
μ ν λΉνλ €λ©΄ μΊμ€ν
μ΄ νμν μ μμ΅λλ€. μλ μμ΄λλ λ³ν(μ: int β long)μ νμ©λμ§λ§, λ΄λ¦¬κΈ° λ³ν(μ: int β byte)μ νμ©λμ§ μμ΅λλ€. μμμ 리ν°λ΄μ floatλ₯Ό μν΄ f μ λ―Έμ¬κ° λΆμ§ μλ ν κΈ°λ³Έμ μΌλ‘ doubleμ
λλ€.
π Dayβ―12μ μ£Όμ μμ
- β Polymorphismμ΄ μλ―Ένλ λ°
- β method overloadingκ³Ό method overridingμ μ°¨μ΄
- β μ€μ λ‘ method overloadingμ΄ μλνλ λ°©μ
- β Javaκ° μ»΄νμΌ μμ μ μ€λ²λ‘λλ λ©μλλ₯Ό μ ννλ λ°©λ²
- β Javaμμ μ«μ 리ν°λ΄μ κΈ°λ³Έ λμ
Meric λ°μ΄ν° νμ
λ€νμ±μ μ΄ν΄νλ κ²μ μ μ°νκ³ μ¬μ¬μ© κ°λ₯ν μ½λλ₯Ό μμ±νλ λ° λμμ΄ λκΈ° λλ¬Έμ μ€μν©λλ€.
π¨βπ« Trainer: Payilagamμ Nantha
π€ A Small Note
μ΄ λΈλ‘κ·Έμ ꡬ쑰μ λ΄μ©μ λ€λ¬λ λ° ChatGPTλ₯Ό μ¬μ©νμΌλ©°, κ°λ
μ΄ νΈλ μ΄λμ μ€λͺ
κ³Ό μΌμΉνλλ‘ νμ΅λλ€.
