λ‹€ν˜•μ„± - OverloadD06πŸ”°

μ΅œμ„±μ§„Β·2023λ…„ 1μ›” 30일
0

Java

λͺ©λ‘ 보기
15/32

λ‹€ν˜•μ„± - Overload

1. λ©”μ„œλ“œ μ˜€λ²„λ‘œλ“œ(overload)

  • μ›μΉ™μ μœΌλ‘œ ν•˜λ‚˜μ˜ 클래슀 μ•ˆμ—μ„œλŠ” λ™μΌν•œ μ΄λ¦„μ˜ λ©”μ„œλ“œκ°€ 두 개 이상 μ‘΄μž¬ν•  수 μ—†μ§€λ§Œ.
    이λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” μ˜ˆμ™Έμ μΈ 처리 기법

2. 이름이 λ™μΌν•œ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•˜κΈ° μœ„ν•œ 쑰건

  • λ©”μ„œλ“œκ°„μ˜ νŒŒλΌλ―Έν„°κ°€ μ„œλ‘œ 달라야 ν•œλ‹€.
    • νŒŒλΌλ―Έν„°μ˜ 데이터 νƒ€μž…μ΄ λ‹€λ₯΄λ‹€.
      (데이터 ν˜•μ΄ λ™μΌν•˜κ³  λ³€μˆ˜μ˜ 이름이 λ‹€λ₯Έκ²½μš°λŠ” λ™μΌν•œ νŒŒλΌλ―Έν„°λ‘œ μΈμ‹λœλ‹€)
    • νŒŒλΌλ―Έν„°μ˜ κ°œμˆ˜κ°€ λ‹€λ₯΄λ‹€
    • μ„œλ‘œλ‹€λ₯Έ λ°μ΄ν„°ν˜•μ„ κ°–λŠ” νŒŒλΌλ―Έν„°λ“€μ˜ 전달 μˆœμ„œκ°€ λ‹€λ₯΄λ‹€
  • λ¦¬ν„°ν˜•μ΄ λ‹€λ₯Έ κ²½μš°λŠ” μ˜€λ²„λ‘œλ“œμ˜ 성립에 μ•„λ¬΄λŸ° 영ν–₯을 주지 μ•ŠλŠ”λ‹€.

3. μ˜€λ²„λ‘œλ“œμ˜ μ˜ˆμ‹œ

  • νŒŒλΌλ―Έν„°μ˜ 데이터 ν˜•μ΄ μ„œλ‘œ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— μ˜€λ²„λ‘œλ“œ 성립
	public void foo(int a){}
	public void foo(ling a){}
  • νŒŒλΌλ―Έν„°μ˜ κ°œμˆ˜κ°€ μ„œλ‘œ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— μ˜€λ²„λ‘œλ“œ 성립
    public void foo(int a){}
	public void foo(int a, int b){}
  • νŒŒλΌλ―Έν„°μ˜ λ°μ΄ν„°ν˜• 전달 μˆœμ„œκ°€ μ„œλ‘œ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— μ˜€λ²„λ‘œλ“œ 성립
	public void foo(int a, String b){}
	public void foo(String a, int b){}
  • μ˜€λ²„λ‘œλ“œ λΆˆκ°€
    public int foo(int a)
	public String foo(int x)

4. μƒμ„±μžμ˜ Overload

  • μƒμ„±μž μ—­μ‹œ λ©”μ„œλ“œμ˜ ν•œ μ’…λ₯˜μ΄λ―€λ‘œ Overloadκ°€ κ°€λŠ₯ν•˜λ‹€.
  • μƒμ„±μžλ₯Ό Overloadν•  경우, ν•΄λ‹Ή ν΄λž˜μŠ€μ— λŒ€ν•΄
    '객체λ₯Ό μƒμ„±ν•˜λŠ” 방법'을 λ‹€μ–‘ν•˜κ²Œ μ€€λΉ„ν•  수 있게 λœλ‹€.

5. thisν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œ μƒμ„±μž overload

  • this ν‚€μ›Œλ“œλ₯Ό λ©”μ„œλ“œμ²˜λŸΌ μ‚¬μš©ν•  경우, ν˜„μž¬ 클래슀의 λ‹€λ₯Έ μƒμ„±μžλ₯Ό μ˜λ―Έν•œλ‹€.
  1. thisν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒμ„±μž overloadλ₯Ό κ°„κ²°ν•˜κ²Œμ²˜λ¦¬
  • νŒŒλΌλ―Έν„°κ°€ μ„œλ‘œ λ‹€λ₯Έ μƒμ„±μžλ“€μ΄ ν•˜λ‚˜μ˜ μ™„μ „ν•œ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜λ„λ‘ ν•˜μ—¬ λ°μ΄ν„°μ˜ μ΄ˆκΈ°ν™”λ₯Ό ν•œκ³³μ—μ„œ μΌκ΄„μ μœΌλ‘œ μ²˜λ¦¬ν•˜λ„λ‘ κ΅¬ν˜„ν•  수 μžˆλ‹€.
 class Hello{

	public Hello(String msg){
		System.out.println(msg);

	}
	
	public Hello(){
		this("Hello"); // ν΄λž˜μŠ€λ‚΄μ— 슀트링 νƒ€μž…μ„ κ°€μ§€λŠ” μƒμ„±μžκ°€ μžλ™μœΌλ‘œ 됨
		//System.out.println("Hello");
	}

}
profile
λ§ˆλΆ€λ¦¬μž…λ‹ˆλ‹€

0개의 λŒ“κΈ€