κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°
- κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμλ λͺ¨λ λ°μ΄ν°λ₯Ό κ°μ²΄(object)λ‘ μ·¨κΈ
μ΄λ¬ν κ°μ²΄κ° νλ‘κ·Έλλ°μ μ€μ¬μ΄ λλ€. - κ°μ²΄(object)λ, μ€μνμμ μ°λ¦¬κ° μΈμν μ μλ μ¬λ¬Όλ‘ μ€λͺ
κ°λ₯
μ΄λ¬ν κ°μ²΄μ μν(state)μ νλ(behavior)μ ꡬ체ννλ ννμ νλ‘κ·Έλλ°μ΄ λ°λ‘ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° - κ°μ²΄λ₯Ό λ§λ€μ΄ λ΄κΈ° μν μ€κ³λμ κ°μ κ°λ μ ν΄λμ€(class)λΌκ³ ν¨.
ν΄λμ€(Class)
- ν΄λμ€λ κ°μ²΄λ₯Ό μ μνλ ν λλ μ€κ³λμ κ°μ μλ―Έμ΄λ€.
μλ°μμλ μ΄λ¬ν μ€κ³λμΈ ν΄λμ€λ₯Ό κ°μ§κ³ , μ¬λ¬ κ°μ²΄λ₯Ό μμ±νμ¬ μ¬μ©ν¨. - ν΄λμ€λ κ°μ²΄μ μνλ₯Ό λνλ΄λ νλ(field)μ κ°μ²΄μ νλμ λνλ΄λ λ©μλ(method)λ‘ κ΅¬μ±
* νλ(field)λ ν΄λμ€μ ν¬ν¨λ λ³μ(variable)λ₯Ό μλ―Έν¨.
* λ©μλ(method)λ νΉμ μμ μ μννκΈ° μν λͺ λ Ήλ¬Έμ μ§ν©, ν¨μλΌ ν μ μμ.
μΈμ€ν΄μ€(instance)
- μλ°μμ ν΄λμ€λ₯Ό μ¬μ©νκΈ° μν΄μλ ν΄λΉ ν΄λμ€ νμ μ κ°μ²΄(object)λ₯Ό μ μΈν΄μΌ ν¨.
- ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό μ μΈνλ κ³Όμ μ ν΄λμ€μ μΈμ€ν΄μ€ νλΌκ³ ν¨.
- μ μΈλ ν΄λΉ ν΄λμ€ νμ μ κ°μ²΄λ₯Ό μΈμ€ν΄μ€(instance)λΌκ³ ν¨.
- μ¦, μΈμ€ν΄μ€λ heap λ©λͺ¨λ¦¬μ ν λΉλ κ°μ²΄λ₯Ό μλ―Ένλ€.
- νλμ ν΄λμ€λ‘λΆν° μ¬λ¬ κ°μ μΈμ€ν΄μ€ μμ± κ°λ₯
- μΈμ€ν΄μ€λ λ 립λ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ μμ λ§μ νλλ₯Ό κ°μ§ μ μμ.
- ν΄λΉ ν΄λμ€μ λͺ¨λ λ©μλ(method)λ ν΄λΉ ν΄λμ€μμ μμ±λ λͺ¨λ μΈμ€ν΄μ€κ° 곡μ ν¨.
λ©μλ(method)
- ν΄λμ€λ νλ(field)μ λ©μλ(method)λ₯Ό κ°μ§.
κ·Έ μ€ λ©μλλ μ΄λ ν νΉμ μμ μ μννκΈ° μν λͺ λ Ήλ¬Έμ μ§ν©μ΄λ€.
ν΄λμ€μ μ μΈ
μ κ·Όμ νμ class ν΄λμ€μ΄λ¦ {}
* μ κ·Όμ νμ : public, protected, default, private
(μΌμͺ½μμ μ€λ₯Έμͺ½μΌλ‘ κ° μλ‘ μ κ·Ό λ²μκ° μ’μμ§)
- public : μ κ·Όμ μ νμ΄ μμ
- protected : λμΌν ν¨ν€μ§ λ΄μ μ‘΄μ¬νκ±°λ νμν΄λμ€μμλ§ μ κ·Ό κ°λ₯
- default : μ κ·Όμ νμλ₯Ό μμ°λ©΄ default. λμΌν ν¨ν€μ§ λ΄μμ μ κ·Ό κ°λ₯
- private : μκΈ° μμ μ ν΄λμ€ λ΄μμλ§ μ κ·Ό κ°λ₯
κ°μ²΄ μμ±κ³Ό ν΄λμ€ λ³μ
ν΄λμ€λͺ λ³μ = new ν΄λμ€λͺ ();
public class Main {
public static void main(String[] args) {
Student s1 = new Student();
s1.Test();
Student s2 = new Student();
s2.Test();
}
}
public class Student {
void Test() {
System.out.println("κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°!");
}
}
ν΄λμ€μ κ΅¬μ± λ©€λ²
ν΄λμ€μλ κ°μ²΄κ° κ°μ ΈμΌ ν κ΅¬μ± λ©€λ²κ° μ μΈ λ¨.
κ΅¬μ± λ©€λ²μλ νλ, μμ±μ, λ©μλ(κ΅¬μ± λ©€λ²λ μλ΅λκ±°λ μ€λ³΅ κ°λ₯)
public class ClassName {
int fieldName; // νλ
ClassName() {...} // μμ±μ
void methodName() {...} // λ©μλ
}
νλ
- ν΄λμ€μ ν¬ν¨λ λ³μ
- μ μΈλ μμΉμ λ°λΌ μλμ κ°μ΄ ꡬλΆλ¨.
ν΄λμ€ λ³μ(static variable)
μΈμ€ν΄μ€ λ³μ(instance variable)
μ§μ λ³μ(local variable)
class Car {
static int modelOutput; // ν΄λμ€ λ³μ
String modelName; // μΈμ€ν΄μ€ λ³μ
void method() {
int something = 10; // μ§μ λ³μ
}
}
λ³μ | μμ±μκΈ° | μλ©ΈμκΈ° | μ μ₯ μμΉ | μ¬μ© λ°©λ² |
ν΄λμ€ λ³μ | ν΄λμ€ μμ±μ | νλ‘κ·Έλ¨μ΄ μ’ λ£ | λ©μλ μμ | ν΄λμ€ μ΄λ¦.λ³μμ΄λ¦ |
μΈμ€ν΄μ€ λ³μ | κ°μ²΄κ° μμ±λ λ | κ°μ²΄ μλ©Έ | ν μμ | κ°μ²΄μ΄λ¦.λ³μμ΄λ¦ |
μ§μ λ³μ | λΈλ‘λ΄μμ λ³μ μ μΈ | λΈλ‘μ λ²μ΄λ λ | μ€ν μμ | λ³μ μ΄λ¦ |
class Field {
static int classVar = 10; // ν΄λμ€ λ³μ μ μΈ
int instanceVar = 20; // μΈμ€ν΄μ€ λ³μ μ μΈ
}
public class Main {
public static void main(String[] args) {
int var = 30; // μ§μ λ³μ μ μΈ
System.out.println(var + "\n"); // μ§μ λ³μ μ°Έμ‘°
Field myField1 = new Field(); // μΈμ€ν΄μ€ μμ±
Field myField2 = new Field(); // μΈμ€ν΄μ€ μμ±
System.out.println(Field.classVar); // ν΄λμ€ λ³μ μ°Έμ‘°
System.out.println(Field.classVar); // ν΄λμ€ λ³μ μ°Έμ‘°
System.out.println(myField2.instanceVar + "\n");
myField1.instanceVar = 200; // μΈμ€ν΄μ€ λ³μμ κ°μ λ³κ²½
System.out.println(myField1.instanceVar); // μΈμ€ν΄μ€ λ³μ μ°Έμ‘°
System.out.println(myField2.instanceVar);
}
}
'ποΈ Backend > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ°(Java) - κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° (2) λ©μλ (μ΄λ‘ ) (0) | 2023.01.10 |
---|---|
μλ°(Java) - κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° (1) ν΄λμ€ (μμ ) (0) | 2023.01.10 |
μλ°(Java) λ¬Έμμ΄ μμ ) μκ° μ λ ₯ (0) | 2023.01.10 |
μλ°(Java) λ¬Έμμ΄ μμ ) λ¬Έμμ΄ μ°κ²° (1) | 2023.01.10 |
μλ°(Java) - λ°°μ΄κ³Ό λ¬Έμμ΄ (4) λ¬Έμμ΄ (0) | 2023.01.09 |