λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ”­Computer ScienceπŸ”­/JAVA

[JAVA] 클래슀

μžλ°”λŠ” 객체지ν–₯ νŒ¨λŸ¬λ‹€μž„ 기반의 언어이닀!

객체지ν–₯μ΄λž€ μ‹œμŠ€ν…œμ„ μƒν˜Έμž‘μš©ν•˜λŠ” κ°μ²΄λ“€μ˜ ν˜‘λ ₯으둜 바라보고 μ‹œμŠ€ν…œμ˜ μ±…μž„μ„ λΆ„ν• ν•˜μ—¬ 각각의 객체가 맑은 μ±…μž„μ„ λ©”μ‹œμ§€λ‘œ μ†Œν†΅ν•˜λ©° μˆ˜ν–‰ν•˜λŠ” 방법이닀.

κ°μ²΄λŠ” μžμ‹ μ΄ 맑은 μ±…μž„μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ λ‹€λ₯Έ 객체와 ν˜‘λ ₯ν•œλ‹€.

각 κ°μ²΄λŠ” ν˜‘λ ₯ λ‚΄μ—μ„œ 정해진 역할을 μˆ˜ν–‰ν•˜λ©° 역할은 κ΄€λ ¨λœ μ±…μž„μ˜ 집합이닀.

κ°μ²΄λŠ” λ‹€λ₯Έ 객체와 ν˜‘λ ₯ν•˜κΈ° μœ„ν•΄ λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•˜κ³ , λ©”μ‹œμ§€λ₯Ό μˆ˜μ‹ ν•œ κ°μ²΄λŠ” 이λ₯Ό μ²˜λ¦¬ν•˜λŠ”λ° μ ν•©ν•œ λ©”μ„œλ“œλ₯Ό 자율적으둜 μ„ νƒν•œλ‹€.

-> μ‘°μ˜ν˜Έλ‹˜μ˜ 객체지ν–₯의 사싀과 μ˜€ν•΄ 인용

 

ν΄λž˜μŠ€λž€?

객체λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ 섀계도(κ΅¬ν˜„ λ©”μ»€λ‹ˆμ¦˜)

 

ν΄λž˜μŠ€λŠ” [ν•„λ“œ, μƒμ„±μž, λ©”μ„œλ“œ]λ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.

 

  • μΈμŠ€ν„΄μŠ€
    • 섀계도에 따라 λ©”λͺ¨λ¦¬μƒμ— μ‹€μ²΄ν™”λœ 객체

μ–΄λ–»κ²Œ ν•˜λ©΄ Variable둜 μƒμ§•λ˜λŠ” 데이터와 κΈ°λŠ₯으둜 μƒμ§•λ˜λŠ” Methodλ₯Ό μ„œλ‘œ μ—°κ΄€λ˜μ–΄ μžˆλŠ” 것 끼리 κ·Έλ£Ήν•‘ ν•  것인가??

-> 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°

 

new μ—°μ‚°μž

new둜 객체λ₯Ό μƒμ„±ν•˜κ²Œ 되면 μƒμ„±ν•œ 객체의 μ£Όμ†Ÿκ°’μ„ λ°˜ν™˜ν•œλ‹€.

 

Calculotor c1 = new Calculator()

ν•΄λ‹Ή 과정을 μˆ˜ν–‰ν•˜λ©΄ c1μ—λŠ” 객체의 μ£Όμ†Ÿκ°’μ΄ λ“€μ–΄κ°€κ²Œ λœλ‹€.

 

c1을 ν•¨μˆ˜μ˜ 인자둜 λ„˜κΈ°κ²Œ 되면 ν•¨μˆ˜ λ‚΄μ—μ„œλŠ” 객체의 μ£Όμ†Ÿκ°’μ„ 톡해 객체에 μ ‘κ·Όν•  수 μžˆλ‹€.

 

μ˜μ‘΄μ„±

  • ν•œ 객체 μ•ˆμ—μ„œ λ‹€λ₯Έ 객체가 생성(new)되면 두 객체 μ‚¬μ΄μ—λŠ” μ˜μ‘΄μ„±μ΄ 생긴닀.
  • λ‹€λ§Œ λ©”μ†Œλ“œμ— λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬λ˜λŠ” μΈμŠ€ν„΄μŠ€ 같은 κ²½μš°μ—λŠ” κ·Έ μΈμŠ€ν„΄μŠ€λ₯Ό μ°Έμ‘°ν•œλ‹€κ³  ν•œλ‹€.
    (λ‚˜μ˜ μ˜μ—­μ΄ μ•„λ‹Œ λ‹€λ₯Έ μ˜μ—­μ—μ„œ 생긴 μΈμŠ€ν„΄μŠ€λ₯Ό κ°€μ Έμ˜¬ λ•Œ -> μ°Έμ‘°)

클래슀 멀버와 μΈμŠ€ν„΄μŠ€ 멀버

객체의 ꡬ성원

  • λ³€μˆ˜
  • λ©”μ„œλ“œ

μΈμŠ€ν„΄μŠ€ 멀버 (μΈμŠ€ν„΄μŠ€ λ³€μˆ˜, λ©”μ„œλ“œ)

객체 μΈμŠ€ν„΄μŠ€κ°€ μ‚¬μš©ν•˜λŠ” 멀버듀

class Calculator {
	int left, right // μΈμŠ€ν„΄μŠ€ λ³€μˆ˜
    
    // μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ
    public void sum() {
    	System.out.println(this.left + this.right)
    }
}

Calculator c1 = new Calculator();

c1.sum();

 

Static 멀버

ν•΄λ‹Ή ν΄λž˜μŠ€λ‘œλΆ€ν„° μƒμ„±λœ λͺ¨λ“  μΈμŠ€ν„΄μŠ€κ°€ κ³΅μœ ν•˜λŠ” 멀버

class Calculator {
	int left, right; // μΈμŠ€ν„΄μŠ€ λ³€μˆ˜
    static final double PI = 3.14; // μŠ€νƒœν‹± λ³€μˆ˜
    static int base = 0;
    
    // μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ
    public void sum() {
    	System.out.println(this.left + this.right);
    }
    
    public static void out_PI() {
    	System.out.println(PI);
    }
}

Calculator c1 = new Calculator();

c1.sum();
Calculator.out_PI()

클래슀 멀버와 μΈμŠ€ν„΄μŠ€ λ©€λ²„κ°„μ˜ 관계

  • μΈμŠ€ν„΄μŠ€λŠ” 클래슀 멀버에 μ ‘κ·Όν•  수 있으며 μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œλŠ” 클래슀 멀버에 μ ‘κ·Όν•  수 μžˆλ‹€.
  • ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€ 멀버에 μ ‘κ·Όν•  수 μ—†μœΌλ©° 클래슀 λ©”μ„œλ“œ λ˜ν•œ μΈμŠ€ν„΄μŠ€ 멀버에 μ ‘κ·Όν•  수 μ—†λ‹€.

 

ν΄λž˜μŠ€λŠ” 항상 μΈμŠ€ν„΄μŠ€λ³΄λ‹€ λ¨Όμ € μ‘΄μž¬ν•œλ‹€. (클래슀λ₯Ό 톡해 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κΈ° λ•Œλ¬Έ)

ν΄λž˜μŠ€κ°€ μΈμŠ€ν„΄μŠ€ 멀버에 μ ‘κ·Όν•˜λ €κ³  ν•˜λŠ” 것은 아직 μƒμ„±λ˜μ§€ μ•Šμ€ μΈμŠ€ν„΄μŠ€μ— μ ‘κ·Όν•˜λ €λŠ” 것과 κ°™λ‹€.

ν•˜μ§€λ§Œ μΈμŠ€ν„΄μŠ€λŠ” λ°˜λ“œμ‹œ ν΄λž˜μŠ€κ°€ μ‘΄μž¬ν•΄μ•Ό μƒμ„±λ˜κΈ° λ•Œλ¬Έμ— 클래슀 멀버에 μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€.