JAVA/Theory

μžλ°”(Java)의 클래슀

ITs Min 2023. 12. 26.

πŸ” 클래슀의 μ •μ˜

ν΄λž˜μŠ€λŠ” class μ˜ˆμ•½μ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ μ •μ˜λœλ‹€. 클래슀의 이름은 λŒ€λ¬Έμžλ‘œ μ‹œμž‘ν•œλ‹€.

예: ν΄λž˜μŠ€λŠ” MyClass이닀.

public class MyClass {
    // 클래슀 λ‚΄μš©μ΄ 여기에 μ˜΅λ‹ˆλ‹€.
}

πŸ” κ°μ²΄(Object)

클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό 객체라고 ν•œλ‹€. ν΄λž˜μŠ€λŠ” 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ ν…œν”Œλ¦Ώμ΄λ©°, κ°μ²΄λŠ” κ·Έ ν…œν”Œλ¦Ώμ„ 기반으둜 λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλœλ‹€.

예: κ°μ²΄λŠ” myObject이닀.

MyClass myObject = new MyClass();

πŸ” μ†μ„±(멀버 λ³€μˆ˜)

ν΄λž˜μŠ€λŠ” 속성을 μ •μ˜ν•  수 μžˆλ‹€. μ΄λŸ¬ν•œ 속성은 클래슀의 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λ©°, 멀버 λ³€μˆ˜ λ˜λŠ” ν•„λ“œλΌκ³ λ„ ν•œλ‹€.

예: 속성은 myVariable이닀.

public class MyClass {
    // 멀버 λ³€μˆ˜
    int myVariable;
}

πŸ” λ©”μ„œλ“œ(멀버 ν•¨μˆ˜)

ν΄λž˜μŠ€λŠ” λ©”μ„œλ“œλ₯Ό κ°€μ§ˆ 수 μžˆλ‹€. λ©”μ„œλ“œλŠ” 클래슀 λ‚΄μ—μ„œ μ–΄λ–€ λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜μ΄λ©°, 멀버 ν•¨μˆ˜ λ˜λŠ” λ©”μ†Œλ“œλΌκ³ λ„ λΆ€λ₯Έλ‹€.

예: λ©”μ„œλ“œλŠ” myMethod이닀.

public class MyClass {
    // 멀버 λ³€μˆ˜
    int myVariable;

    // λ©”μ„œλ“œ
    void myMethod() {
        // λ©”μ„œλ“œ λ‚΄μš©μ΄ 여기에 μ˜΅λ‹ˆλ‹€.
    }
}

πŸ” μƒμ„±μž(Constructor)

μƒμ„±μžλŠ” 객체가 생성될 λ•Œ ν˜ΈμΆœλ˜λŠ” νŠΉλ³„ν•œ μ’…λ₯˜μ˜ λ©”μ„œλ“œμ΄λ‹€. 주둜 객체의 μ΄ˆκΈ°ν™”λ₯Ό μœ„ν•΄ μ‚¬μš©λœλ‹€.

예: μƒμ„±μžλŠ” public MyClass()이닀.

public class MyClass {
    // μƒμ„±μž
    public MyClass() {
        // μ΄ˆκΈ°ν™” μ½”λ“œ
    }
}

πŸ” μ ‘κ·Ό μ œμ–΄μž(Access Modifiers)

μžλ°”μ—μ„œλŠ” 클래슀, λ³€μˆ˜, λ©”μ„œλ“œ λ“±μ˜ 접근을 μ œμ–΄ν•˜κΈ° μœ„ν•΄ μ ‘κ·Ό μ œμ–΄μžλ₯Ό μ‚¬μš©ν•œλ‹€. κ°€μž₯ 일반적으둜 μ‚¬μš©λ˜λŠ” 것은 public, private, protected, 그리고 default이닀.

예: μ ‘κ·Ό μ œμ–΄μžλŠ” public, private, protected, λ˜λŠ” default이닀.

public class MyClass {
    // public μ ‘κ·Ό μ œμ–΄μž
    public int publicVariable;

    // private μ ‘κ·Ό μ œμ–΄μž
    private int privateVariable;

    // protected μ ‘κ·Ό μ œμ–΄μž
    protected int protectedVariable;

    // default μ ‘κ·Ό μ œμ–΄μž (package-private)
    int defaultVariable;
}

πŸ” 상속(Inheritance)

μžλ°”μ—μ„œλŠ” 클래슀 간에 상속을 톡해 μ½”λ“œλ₯Ό μž¬μ‚¬μš©ν•  수 μžˆλ‹€. ν•œ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀의 νŠΉμ„±μ„ 상속받아 μ‚¬μš©ν•  수 μžˆλ‹€. 예: 상속은 ChildClass extends ParentClass이닀.

public class ChildClass extends ParentClass {
    // μžμ‹ 클래슀의 λ‚΄μš©μ΄ 여기에 μ˜΅λ‹ˆλ‹€.
}

πŸ” λ‹€ν˜•μ„±(Polymorphism)

λ‹€ν˜•μ„±μ€ ν•˜λ‚˜μ˜ μΈν„°νŽ˜μ΄μŠ€λ‚˜ λ©”μ„œλ“œκ°€ μ—¬λŸ¬ κ°€μ§€ ν˜•νƒœλ‘œ λ™μž‘ν•  수 μžˆμŒμ„ λ‚˜νƒ€λ‚Έλ‹€. λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©κ³Ό λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©μ„ 톡해 κ΅¬ν˜„λœλ‹€. 예: λ‹€ν˜•μ„±μ€ λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©κ³Ό μ˜€λ²„λΌμ΄λ”©μ„ 톡해 λ‚˜νƒ€λ‚œλ‹€.


 
 
 
 

'JAVA > Theory' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Java] request 객체  (0) 2024.02.06
[Java] POJO vs Non-POJO  (0) 2024.01.19
μžλ°”(Java)μ—μ„œ NullPointerException  (0) 2023.12.21
μžλ°”(Java)의 μ œμ–΄λ¬Έ  (0) 2023.12.18
μžλ°”(Java)의 μ ‘κ·Ό μ œμ–΄μž  (1) 2023.12.17

λŒ“κΈ€

TOP

λŠ¦μ—ˆλ‹€κ³  생각할 땐 λ„ˆλ¬΄ λŠ¦μ€ κ±°λ‹€.