โ˜•Java

[Java ์ดํ•ดํ•˜๊ธฐ] 18. Java์˜ ์˜ค๋ฒ„๋กœ๋”ฉ

Luvbit 2024. 5. 27. 12:21


 

๐Ÿ’œ Java์˜ ์˜ค๋ฒ„๋กœ๋”ฉ์ด๋ž€?

์˜ค๋ฒ„๋กœ๋”ฉ(Overloading) ์€ ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด๋‚˜ ๊ฐœ์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ
์—ฌ๋Ÿฌ ๊ฐœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํŒŒ์ผ ์‹œ์ ์— ์–ด๋–ค ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿค์˜ค๋ฒ„๋กœ๋”ฉ์˜ ํŠน์ง• 

 

1. ๊ฐ™์€ ์ด๋ฆ„, ๋‹ค๋ฅธ ๋งค๊ฐœ ๋ณ€์ˆ˜

- ์˜ค๋ฒ„๋กœ๋”ฉ์€ ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๋‚˜ ํƒ€์ž…์„ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

2. ์ปดํŒŒ์ผ ํƒ€์ž…์— ๊ฒฐ์ •

- ์˜ค๋ฒ„๋กœ๋”ฉ์€ ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. 

- ์ฆ‰, ์–ด๋–ค ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ ์ง€๋Š” ์ปดํŒŒ์ผ ์‹œ์ ์— ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…๊ณผ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

 

3. ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ์˜ํ–ฅ ์—†์Œ

- ์˜ค๋ฒ„๋กœ๋”ฉ์—์„œ๋Š” ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

- ๋ฐ˜ํ™˜ ํƒ€์ž…์ด ๋‹ค๋ฅด๋”๋ผ๋„ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์ด ๊ฐ™์œผ๋ฉด ์˜ค๋ฒ„๋กœ๋”ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿฉท ์žฅ์ 

์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.
์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์–‘ํ•œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ ๋‹ค์–‘ํ•œ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์œ ์—ฐ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.

 

 

 

 


์˜ค๋ฒ„๋กœ๋”ฉ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ์ œ 1 ) ๊ฐ™์€ ์ด๋ฆ„, ๋‹ค๋ฅธ ๋งค๊ฐœ ๋ณ€์ˆ˜

public class MathOperations {
    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }

    public int add(int a, int b, int c) {
        return a + b + c;
    }

    public static void main(String[] args) {
        MathOperations math = new MathOperations();
        System.out.println(math.add(1, 2)); // intํ˜• add ํ˜ธ์ถœ
        System.out.println(math.add(1.5, 2.5)); // doubleํ˜• add ํ˜ธ์ถœ
        System.out.println(math.add(1, 2, 3)); // 3๊ฐœ์˜ intํ˜• add ํ˜ธ์ถœ
    }
}

 

 

 

์˜ˆ์ œ 2 ) ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ์˜ํ–ฅ ์—†์Œ

public class Test {
    // ์œ ํšจํ•œ ์˜ค๋ฒ„๋กœ๋”ฉ
    public void display(String msg) {
        System.out.println(msg);
    }

    // ์œ ํšจํ•œ ์˜ค๋ฒ„๋กœ๋”ฉ
    public void display(int num) {
        System.out.println(num);
    }

    // ๋ฐ˜ํ™˜ ํƒ€์ž…๋งŒ ๋‹ค๋ฅด๋ฏ€๋กœ ์˜ค๋ฒ„๋กœ๋”ฉ ๋ถˆ๊ฐ€ (์ปดํŒŒ์ผ ์—๋Ÿฌ)
    // public int display(int num) {
    //     return num;
    // }
}

 

 

 

์˜ˆ์ œ 3 ) ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ

public class Print {
    public void printInfo(String info) {
        System.out.println("String: " + info);
    }

    public void printInfo(int info) {
        System.out.println("Integer: " + info);
    }

    public void printInfo(double info) {
        System.out.println("Double: " + info);
    }

    public static void main(String[] args) {
        Print printer = new Print();
        printer.printInfo("Hello World");
        printer.printInfo(123);
        printer.printInfo(45.67);
    }
}

 

 


 

 

 

" ์š”์•ฝ " 

  • ์˜ค๋ฒ„๋กœ๋”ฉ : ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด๋‚˜ ๊ฐœ์ˆ˜๋ฅผ ๋‹ฌ๋ฆฌํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ ์ •์˜ํ•˜๋Š” ๊ฒƒ.
  • ํŠน์ง• : ๊ฐ™์€ ์ด๋ฆ„, ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜. ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒฐ์ •. ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ์˜ํ–ฅ ์—†์Œ.
  • ์žฅ์  : ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ, ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด, ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ.

 

 

 

์ด ์˜ค๋ฒ„๋กœ๋”ฉ์€ ์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” System.out.println() ๋ฉ”์„œ๋“œ์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ž๋ฐ”๋Š” ์ˆ˜๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค API ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด์„œ ํ•™์Šตํ•˜๋ฉด ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์ž๋ฐ”์˜ API ์‚ฌ์ดํŠธ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.

 

https://docs.oracle.com/en/java/javase/17/docs/api/index.html

 

Overview (Java SE 17 & JDK 17)

This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP

docs.oracle.com

 

์‹ค์ œ๋กœ System.out.println() ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ ๋ฒ„์ „์œผ๋กœ ์˜ค๋ฒ„๋กœ๋”ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž์—ด, ์ •์ˆ˜, ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ, ์‹ฌ์ง€์–ด ๊ฐ์ฒด๊นŒ์ง€ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ System.out.println()์„ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ธ์ž์˜ ํƒ€์ž…์— ๋งž๋Š” ์ ์ ˆํ•œ ์˜ค๋ฒ„๋กœ๋”ฉ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ ์ด API์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉฐ ํ•˜์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ˜

 

 

 

 

 

์˜ค๋ฒ„๋กœ๋”ฉ์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ค‘์š”ํ•œ ์›์น™์ธ
๋‹คํ˜•์„ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ์€ ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€์— ๋‚จ๊ฒจ์ฃผ์„ธ์š”.
๐Ÿฉต๐Ÿฐ๐Ÿฉต