728x90
λ°˜μ‘ν˜•

1) νŒ¨ν‚€μ§€

 

1-1) νŒ¨ν‚€μ§€μ˜ 의미

 

  • 클래슀 νŒŒμΌμ„ λ¬Άμ–΄μ„œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ μˆ˜λ‹¨μœΌλ‘œ 파일 μ‹œμŠ€ν…œμ˜ 폴더λ₯Ό 이용
  • νŒ¨ν‚€μ§€λ§ˆλ‹€ λ³„λ„μ˜ 이름 곡간이 생기기 λ•Œλ¬Έμ— 클래슀 이름을 μ‚¬μš©ν•˜λ”λΌλ„ λ‹€λ₯Έ νŒ¨ν‚€μ§€μ— μž‘μ„±ν•œ ν›„ ν†΅ν•©ν•œλ‹€λ©΄ 클래슀 파일이 μ€‘λ³΅λ˜μ§€ μ•ŠλŠ”λ‹€
  • 클래슀λ₯Ό νŒ¨ν‚€μ§€ λ‹¨μœ„λ‘œλ„ μ œμ–΄ν•  수 있기 λ•Œλ¬Έμ— μ’€ 더 μ„Έλ°€ν•˜κ²Œ 접근을 μ œμ–΄ν•  수 μžˆλ‹€

** λŒ€ν‘œμ μΈ νŒ¨ν‚€μ§€

 

  • java.lang νŒ¨ν‚€μ§€λŠ” import 문을 μ„ μ–Έν•˜μ§€ μ•Šμ•„λ„ μžλ™μœΌλ‘œ μž„ν¬νŠΈλ˜λŠ” μžλ°”μ˜ κΈ°λ³Έ 클래슀λ₯Ό λͺ¨μ•„λ‘” 것
  • java.awt νŒ¨ν‚€μ§€λŠ” κ·Έλž˜ν”½ ν”„λ‘œκ·Έλž˜λ°μ— κ΄€λ ¨λœ 클래슀λ₯Ό λͺ¨μ•„λ‘” 것
  • java.io νŒ¨ν‚€μ§€λŠ” μž…μΆœλ ₯κ³Ό κ΄€λ ¨λœ 클래슀λ₯Ό λͺ¨μ•„ λ‘” 것

 

1-2) νŒ¨ν‚€μ§€ μ„ μ–Έ

 

  • 주석문을 μ œμ™Έν•˜κ³ λŠ” λ°˜λ“œμ‹œ 첫 행에 μ„ μ–Έ
  • νŒ¨ν‚€μ§€ 이름은 λͺ¨λ‘ μ†Œλ¬Έμžλ‘œ λͺ…λͺ…ν•˜λŠ” 것이 관둀이고 일반적으둜 νŒ¨ν‚€μ§€ 이름이 μ€‘λ³΅λ˜μ§€ μ•Šλ„λ‘ νšŒμ‚¬μ˜ 도메인 이름을 μ—­μˆœμœΌλ‘œ μ‚¬μš©ν•œλ‹€

 

1-3) νŒ¨ν‚€μ§€μ˜ μ‚¬μš©

  • λ‹€λ₯Έ νŒ¨ν‚€μ§€μ— μžˆλŠ” 곡개된 클래슀λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ νŒ¨ν‚€μ§€ 경둜λ₯Ό μ»΄νŒŒμΌλŸ¬μ—κ²Œ μ•Œλ € μ£Όμ–΄μ•Ό ν•œλ‹€.
  • νŒ¨ν‚€μ§€ 이름을 μ ‘λ‘μ–΄λ‘œ μ‚¬μš©ν•΄ λ‹€λ₯Έ νŒ¨ν‚€μ§€μ— μžˆλŠ” 클래슀λ₯Ό μ΄μš©ν•œλ‹€. ex) new com.usa.people.Lincoln();
  • μžλ°”λŠ” μ‚¬μš©ν•˜λ €λŠ” νŒ¨ν‚€μ§€ 경둜λ₯Ό 미리 μ»΄νŒŒμΌλŸ¬μ— μ•Œλ € 쀄 수 μžˆλ„λ‘ λ‹€μŒκ³Ό 같이 import 문을 μ‚¬μš©ν•œλ‹€
  • import 문은 μ†ŒμŠ€ νŒŒμΌμ—μ„œ package λ¬Έκ³Ό 첫 번째 클래슀 μ„ μ–ΈλΆ€ 사이에 μœ„μΉ˜ν•œλ‹€

package java04;

import com.usa.people.Lincoln;

 

public class ShowWorldPeople {

      public static void main(String[] args) {

             Lincoln greatman = new Lincoln();

      }

}

  • μ»΄νŒŒμΌλŸ¬μ— Lincoln 클래슀의 경둜λ₯Ό μ•Œλ €μ€€λ‹€
  • import 문으둜 경둜λ₯Ό μ•Œλ € μ£Όμ—ˆμœΌλ―€λ‘œ com.usa.peopleμ΄λΌλŠ” 경둜 μ •λ³΄λŠ” ν•„μš” μ—†λ‹€

 

2) μžμ‹ ν΄λž˜μŠ€μ™€ λΆ€λͺ¨ μƒμ„±μž

 

  • μƒμ„±μžλŠ” 클래슀 멀버가 μ•„λ‹ˆλ―€λ‘œ μžμ‹ ν΄λž˜μŠ€μ— μƒμ†λ˜μ§€λŠ” μ•ŠλŠ”λ‹€
  • ν•˜μ§€λ§Œ λΆ€λͺ¨μ—κ²Œμ„œ 물렀받은 멀버가 μžˆλ‹€λ©΄ μžμ‹ ν΄λž˜μŠ€λŠ” 이λ₯Ό μ΄ˆκΈ°ν™”ν•˜κΈ° μœ„ν•΄ λΆ€λͺ¨ 클래슀의 μƒμ„±μžκ°€ ν•„μš”ν•˜λ‹€

μžμ‹ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜λ©΄ λΆ€λͺ¨ μƒμ„±μžλ„ μžλ™μœΌλ‘œ 호좜

 

  • μžμ‹ μƒμ„±μžμ˜ 첫 행에 λΆ€λͺ¨ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜λŠ” μ½”λ“œκ°€ μžˆλ‹€

 

3) 상속과 μ ‘κ·Όμ œμ–΄

 

3-1) μ ‘κ·Ό μ§€μ •μžμ˜ μ ‘κ·Ό λ²”μœ„

 

  • μžλ°”λŠ” ν΄λž˜μŠ€μ™€ 클래슀 멀버λ₯Ό λ‹€λ₯Έ 객체에 κ³΅κ°œν•˜λŠ” λ²”μœ„λ₯Ό λͺ…μ‹œν•˜λ €κ³  private, protected, publicμ΄λΌλŠ” μ ‘κ·Ό μ§€μ •μž(access modifier)λ₯Ό μ œκ³΅ν•œλ‹€
μ ‘κ·Ό μ§€μ •μž 동일 클래슀 동일 νŒ¨ν‚€μ§€ μžμ‹ 클래슀  λ‹€λ₯Έ νŒ¨ν‚€μ§€
public o o o o
protected o o o x
μ—†μŒ(default) o o x x
private o x x x
  • λ‹€λ₯Έ ν΄λž˜μŠ€μ— κ³΅κ°œν•˜λ €λ©΄ public, μžμ‹ ν΄λž˜μŠ€μ—λ§Œ κ³΅κ°œν•˜λ €λ©΄ protected, κ³΅κ°œν•˜μ§€ μ•ŠμœΌλ©΄ private으둜 μ§€μ •ν•œλ‹€.    μ ‘κ·Ό μ§€μ •μžλ‘œ μ§€μ •ν•˜μ§€ μ•Šμ„ λ•ŒλŠ” ν•΄λ‹Ή νŒ¨ν‚€μ§€μ—μ„œλ§Œ κ³΅κ°œλ˜λŠ”λ°, 이λ₯Ό λ””ν΄νŠΈ μ ‘κ·Ό 지정이라고 ν•œλ‹€
  • private λ©€λ²„λŠ” μžμ‹ ν΄λž˜μŠ€μ— μƒμ†λ˜μ§€ μ•ŠλŠ”λ‹€
  • 클래슀 λ©€λ²„λŠ” μ–΄λ–€ μ ‘κ·Ό μ§€μ •μžλ‘œλ„ 지정할 수 μžˆμ§€λ§Œ, ν΄λž˜μŠ€λŠ” protected와 private으둜 지정할 수 μ—†λ‹€
  • λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©ν•  λ•Œ λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œλ³΄λ‹€ 더 쒋은 μ ‘κ·Ό 지정을 ν•  수 μ—†λ‹€.

 

4) final ν΄λž˜μŠ€μ™€ λ©”μ„œλ“œ

 

4-1) final 클래슀

  • 더 이상 상속할 수 μ—†λŠ” 쒅단 클래슀λ₯Ό 의미
  • final 클래슀의 λͺ©μ μ€ μžμ‹ 클래슀λ₯Ό μ •μ˜ν•΄ λΉ„κ³΅κ°œ 정보에 μ ‘κ·Όν•˜κ±°λ‚˜ μ‹œμŠ€ν…œμ„ νŒŒκ΄΄ν•˜λŠ” 경우λ₯Ό λ°©μ§€ν•˜λŠ” 것이닀
  • μžλ°” ν‘œμ€€ APIκ°€ μ œκ³΅ν•˜λŠ” String ν΄λž˜μŠ€λŠ” λŒ€ν‘œμ μΈ final 클래슀둜 λ‹€μŒκ³Ό 같이 μžμ‹ 클래슀λ₯Ό μ„ μ–Έν•œλ‹€λ©΄ 였λ₯˜κ°€ λ°œμƒν•œλ‹€

ex) class ChildString extends String {..}  =>  String은 final ν΄λž˜μŠ€μ΄λ―€λ‘œ λΆ€λͺ¨ ν΄λž˜μŠ€κ°€ 될 수 μ—†λ‹€

 

 

4-2) final λ©”μ„œλ“œ

 

  • final λ©”μ„œλ“œλŠ” 더 이상 μ˜€λ²„λΌμ΄λ”©ν•  수 μ—†λŠ” 쒅단 λ©”μ„œλ“œμ΄λ‹€
  • λ”°λΌμ„œ λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•œ final λ©”μ„œλ“œλ₯Ό μžμ‹ ν΄λž˜μŠ€λŠ” μˆ˜μ • 없이 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€
  • νŠΉμ • λ©”μ„œλ“œλ§Œ μ˜€λ²„λΌμ΄λ”©ν•˜μ§€ μ•Šλ„λ‘ ν•˜λ €λ©΄ final λ©”μ„œλ“œλ‘œ μ„ μ–Έν•œλ‹€

class Chess {

       enum ChessPlayer {

               WHITE, BLACK

      }

      final ChessPlayer getFirstPlayer() {

            return ChessPlayer.WHITE;

      }

}

class WorldChess extends Chess {

       // ChessPlayer getFirstPlayer() {}

}

 

public class FinalMethodDemo {

       public static void main(String[] args) {

              WorldChess w = new WorldChess();

              w.getFirstPlayer();

        }

}

=> 체슀 κ²Œμž„μ€ 흰색 μ„ μˆ˜κ°€ λ¨Όμ € μ‹œμž‘ν•˜λŠ” 것이 κ΄€λ‘€μ΄λ―€λ‘œ μ‹œμž‘ μˆœμ„œλ₯Ό 바꾸지 μ•Šμ•„μ•Ό ν•˜λ―€λ‘œ 체슀의 μ‹œμž‘ μ„ μˆ˜λ₯Ό μ •ν•˜λŠ” λ©”μ„œλ“œλ₯Ό final둜 μ§€μ •γ…Žν•΄μ„œ κ²Œμž„μ˜ μˆœμ„œλ₯Ό κ³ μ •ν•œ μ˜ˆμ œμ΄λ‹€

728x90
λ°˜μ‘ν˜•

+ Recent posts