μ μ΄μ
λ³μ, λ©μλ, ν΄λμ€ μ μΈλΆμ νμλμ΄ λΆκ°μ μΈ μλ―Έλ₯Ό λΆμ¬νλ ν€μλλ₯Ό λ§νλ€.
μ μ΄μ μ’ λ₯
μ μ΄μλ μ κ·Ό μ μ΄μμ κ·Έ μΈμ μ μ΄μ, λ κ°μ§ μ’ λ₯λ‘ λλ μ μλ€. μ μ©μ΄ λλ νλμ λμμ μ¬λ¬ μ μ΄μλ₯Ό μ‘°ν©νμ¬ μ¬μ©ν μ μλλ°, μ κ·Ό μ μ΄μλ νλλ§ μ νν΄μ μ¬μ©ν΄μΌνλ€.
μ κ·Ό μ μ΄μ(access modifier)
ν΄λμ€, λ©€λ² λ³μ, λ©μλ, μμ±μμ μ¬μ©λλ©° ν΄λΉ λ©€λ²λ ν΄λμ€μ μ κ·Ό κ°λ₯ν μΈλΆ λ²μλ₯Ό μ§μ νλ μν μ νλ€. (μ¦, ν΄λΉ λ©€λ²λ ν΄λμ€λ₯Ό μΈλΆμμ μ κ·Όνμ§ λͺ»νλλ‘ μ ν) λ³΄ν΅ μ κ·Ό μ μ΄μλ₯Ό μ¬μ©νλ μ΄μ λ ν΄λμ€ λ΄λΆμ μ μΈλ λ©€λ² λ°μ΄ν°λ₯Ό 보νΈνκΈ° μν¨μ΄λ€.
public protected default private
μ κ·Ό μ μ΄μ | λ²μ(μ κ·Ό λ²μ λμ μ) |
public | μ κ·Ό μ νμ΄ μμ (μΈλΆμμ μ κ·Ό κ°λ₯) |
protected | κ°μ ν¨ν€μ§ λ΄μμ μ κ·Ό κ°λ₯ / λ€λ₯Έ ν¨ν€μ§μ μμν΄λμ€μμ μ κ·Ό κ°λ₯ |
(default) | κ°μ ν¨ν€μ§ λ΄μμλ§ μ κ·Ό κ°λ₯ |
private | κ°μ ν΄λμ€ λ΄μμλ§ μ κ·Ό κ°λ₯ |
default
defaultλ μ€μ λ‘ ν€μλλ₯Ό ν΄λμ€λ λ©€λ² μμ κΈ°μ¬νμ§ μλλ€.
κ·Έ μΈ μ μ΄μ
static
'μ μ ',βκ³ μ λβμ΄λΌκ³ ν΄μλλ©°, 'ν΄λμ€μ' λλ '곡ν΅μ μΈ'μ΄λ μλ―Έλ₯Ό μ§λκ³ μλ μ μ΄μλ€. ν΄λμ€κ° λ©λͺ¨λ¦¬μ λ‘λλ λ static ν€μλκ° λΆμ λ©€λ² λ³μλ λ©μλλ λ©λͺ¨λ¦¬μ μ²μ ν λ² ν λΉλκ³ νλ‘κ·Έλ¨μ΄ μ’ λ£λ λκΉμ§ κ·Έ λ©λͺ¨λ¦¬μ κ°μ΄ μ μ§λλ€. λ°λΌμ ν΄λΉ ν΄λμ€μ λͺ¨λ μΈμ€ν΄μ€λ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ 곡μ νμ¬ μ κ·Όνλ€. staticμ΄ λΆμ λ©€λ² λ³μμ λ©μλλ μΈμ€ν΄μ€κ° μλ ν΄λμ€μ κ΄κ³λ κ²μ΄κΈ° λλ¬Έμ ν΄λΉ ν΄λμ€μ λͺ¨λ μΈμ€ν΄μ€μ 곡ν΅μ μΌλ‘ μ μ©μ΄λλ©°, μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ μ¬μ©ν μ μλ€. λ°λλ‘ ν΄λμ€μ μ μΈλ μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€λ₯Ό μμ±ν΄μΌλ§ νΈμΆν μ μλ λ³μλ‘ κ° μΈμ€ν΄μ€λ§λ€ λ 립λ λ©λͺ¨λ¦¬μ μ μ¬λλ€.
class TestClass{
static int classVar = 10; // staticλ³μ, static νλ, ν΄λμ€λ³μ
int instanceVar = 20; // μΈμ€ν΄μ€λ³μ
public static void StaticPrint(){
//System.out.println("Static Method"+"i:"+instanceVar); //μΈμ€ν΄μ€ λ³μ μ§μ μ¬μ© λΆκ°
System.out.println("Static Method" + " s:" + classVar);
}
public void InstancePrint(){
System.out.println("Instance Method" + " s:" + classVar + " i:" + instanceVar);
}
}
public class StaticTest {
public static void main(String[] args) {
TestClass.StaticPrint(); // "Static Method s:10"
//TestClass.InstancePrint(); // μΈμ€ν΄μ€ μμ± μμ΄ νΈμΆ λΆκ°
TestClass t1 = new TestClass();
TestClass t2 = new TestClass();
t1.classVar = 15;
t1.instanceVar = 25;
t2.classVar = 20;
t2.instanceVar = 30;
t1.InstancePrint(); // "Instance Method s:20 i:25"
t2.InstancePrint(); // "Instance Method s:20 i:30"
}
}
staticλ©μλλ μΈμ€ν΄μ€ μμ± μμ΄ νΈμΆ κ°λ₯
staticλ©μλμμλ μΈμ€ν΄μ€ λ©€λ² μ§μ μ¬μ© λΆκ°
:ν΄λμ€κ° λ©λͺ¨λ¦¬μ λ‘λλλ μμ μμλ ν΄λμ€μ μΈμ€ν΄μ€κ° μμ±λμ§ μμμ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©ν μ μλ€.
ν΄λμ€μ μΈμ€ν΄μ€λ€μ static λ³μ μ¬μ©ν λ νλμ λ©λͺ¨λ¦¬μ μ κ·Ό(λ©λͺ¨λ¦¬ 곡μ )
μΈμ€ν΄μ€ λ³μ
ν΄λμ€ μμμμ μ μΈλλ©°, ν΄λΉ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ λ§λ€μ΄μ§λ λ³μ
ν΄λμ€ λ³μ
λͺ¨λ μΈμ€ν΄μ€κ° 곡ν΅μ μΌλ‘ κ°μ κ°μ μ μ§ν΄μΌνλ λ³μ
ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ 'ν΄λμ€μ΄λ¦.ν΄λμ€λ³μ'μ κ°μ λ°©μμΌλ‘ μ¬μ© κ°λ₯
νλμ μ μ₯곡κ°μ κ°μ§λ©° λͺ¨λ μΈμ€ν΄μ€κ° κ·Έ μ μ₯곡κ°μ 곡μ νμ¬ νμ 곡ν΅μ κ°μ κ°μ
final
βλ³κ²½λ μ μλβ μ΄λΌλ μλ―Έλ₯Ό κ°μ§ μ μ΄μμ΄λ€. ν΄λμ€μ μ μ©λλ©΄ λ³κ²½λ μ μκ³ νμ₯λ μ μλ ν΄λμ€κ° λλ€. νμ₯μ΄ λΆκ°λ₯νλ€λ 건 λ€λ₯Έ ν΄λμ€μ μ‘°μ ν΄λμ€κ° λ μ μλ€λ λ»μ΄λ€. λ©μλμ μ μ©μ΄ λλ©΄ μ€λ²λΌμ΄λ©μ ν΅ν΄ μ¬μ μ λ μ μλ λ©μλκ° λλ€. λ§μ§λ§μΌλ‘ λ³μ(λ©€λ²λ³μ, μ§μλ³μ)μ μ μ©μ΄λλ©΄ κ°μ λ³κ²½ν μ μλ μμκ° λλ€. λ§μ½ μΈμ€ν΄μ€λ§λ€ λ€λ₯Έ κ°μ κ°μ§ final λ³μλ₯Ό μμ±νκ³ μΆμΌλ©΄ final λ³μλ₯Ό μΈμ€ν΄μ€ λ³μλ‘ μ μΈνκ³ , μμ±μλ₯Ό ν΅ν΄ μ΄κΈ°ννλ©΄ λλ€.
μ μ©λμ | μλ―Έ |
ν΄λμ€ | λ³κ²½ λΆκ°, νμ₯ λΆκ° ν΄λμ€ |
λ©μλ | μ€λ²λΌμ΄λ© ν΅ν μ¬μ μ λΆκ° |
λ³μ | κ° λ³κ²½ λΆκ°λ₯ν μμ |
abstract
βμΆμμ μΈβ, βλ―Έμμ±μβλΌλ λ»μ κ°μ§ μ μ΄μλ‘ μ μΈλΆλ§ μκ³ κ΅¬νλΆκ° μλ μΆμλ©μλλ₯Ό μ μΈνλλ°μ μ¬μ©νλ€. ν΄λμ€μ μ μ©λλ©΄ νλ μ΄μμ μΆμ λ©μλλ₯Ό ν¬ν¨νκ³ μλ μΆμν΄λμ€λ₯Ό μλ―Ένλ€. μΆμ ν΄λμ€λ λ―Έμμ±μ λ©μλκ° μ‘΄μ¬νκΈ° λλ¬Έμ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€. μΆμ λ©μλκ° μλ ν΄λμ€μλ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ λͺ»νκ² abstractλ₯Ό λΆμ¬ μΆμ ν΄λμ€λ‘ μΌλΆλ¬ λ§λλ κ²½μ°λ μλ€.
'π Language > π Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° (OOP is A PIE) (0) | 2023.06.29 |
---|---|
[Java] Scanner ν΄λμ€ / nextInt(), next(), nextLine() (0) | 2022.08.03 |
[Java] Arrays κ΄λ ¨ (0) | 2022.05.26 |
[Java] length, length(), size() (0) | 2022.05.21 |
[Java] λ΄κ° 보λ μλ° λμ λμ .. (0) | 2022.05.06 |