μΆμ²
ChatGPT
μ€νν± λ©μλμμ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©ν μ μλ μ΄μ λ μλ°μ ν΄λμ€ μ€κ³μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ κ°λ μ κΈ°μ΄νλ€. μ΄ μ μ½μ κ°μ²΄μ μνμ ν΄λμ€μ λμμ λͺ ννκ² λΆλ¦¬νκ³ , μ€νν± λ©€λ²κ° μΈμ€ν΄μ€μ μμ‘΄νμ§ μλλ‘ λ³΄μ₯νλ λ° μ€μν μν μ νλ€.
- κ΄λ ¨ κΈ -> [Java][JVM][OOP] μλ° λ©λͺ¨λ¦¬ ꡬ쑰 + κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° κ°λ μ§μ
1. μ€νν±κ³Ό μΈμ€ν΄μ€μ μ°¨μ΄
μ€νν± λ©€λ² Static Members
ν΄λμ€ μμ€μμ μ‘΄μ¬
μ€νν± λ©μλμ μ€νν± λ³μλ ν΄λμ€ μ체μ μνλ€. ν΄λμ€κ° λ©λͺ¨λ¦¬μ λ‘λλ λ μμ±λλ©°, λͺ¨λ μΈμ€ν΄μ€κ° 곡μ νλ€.
μΈμ€νΈμ μμ‘΄νμ§ μμ
μ€νν± λ©μλλ νΉμ μΈμ€ν΄μ€μ μ°κ²°λμ§ μμΌλ©°, ν΄λμ€ μ΄λ¦μ ν΅ν΄ μ§μ νΈμΆλλ€.
μΈμ€ν΄μ€ λ©€λ² Instancee Members
κ°μ²΄ μμ€μμ μ‘΄μ¬
μΈμ€ν΄μ€ λ³μμ μΈμ€ν΄μ€ λ©μλλ κ°μ²΄κ° μμ±λ λλ§λ€ μλ‘μ΄ κ°κ³Ό λμμ κ°μ§λ€.
κ° μΈμ€ν΄μ€λ§λ€ λ 립μ
κ° μΈμ€ν΄μ€λ κ³ μ μ λ°μ΄ν° μνλ₯Ό κ°μ§λ©°, μΈμ€ν΄μ€ λ³μλ ν΄λΉ κ°μ²΄μ μνλ₯Ό λνλΈλ€.
2. μ€νν± λ©μλμ νΉμ±
μ€νν± λ©μλλ νΉμ μΈμ€ν΄μ€μ 무κ΄νκ² ν΄λμ€ μ 체μ 곡ν΅μ μΈ λμμ μ μνλ€. μ΄λ¬ν νΉμ±μΌλ‘ μΈν΄ λ€μκ³Ό κ°μ μ νμ΄ μ‘΄μ¬νλ€.
2.1 ν΄λμ€ λ‘λ© μμ μ μ‘΄μ¬
μ€νλ¦ λ©μλλ ν΄λμ€κ° λ©λͺ¨λ¦¬μ λ‘λλ λ μμ±λλ€. μ΄ μμ μλ νΉμ μΈμ€ν΄μ€κ° μ‘΄μ¬νμ§ μμ μλ μμΌλ©°, λ°λΌμ μΈμ€ν΄μ€ λ³μμ μ κ·Όν λ°©λ²μ΄ μλ€.
2.2 λ 립μ μΈ ν¨μμ²λΌ λμ
μ€νν± λ©μλλ κ°μ²΄μ νΉμ μνλ λμκ³Ό κ΄κ³μμ΄ μ νΈλ¦¬ν° ν¨μλ νΉμ λ‘μ§μ μννλ λ° μ£Όλ‘ μ¬μ©λλ€. μλ₯Ό λ€μ΄, 'Math' ν΄λμ€μ 'sqrt' λ©μλλ μ λ ₯κ°μ λν κ³μ°λ§μ μννλ©°, νΉμ κ°μ²΄μ μνμ μμ‘΄νμ§ μλλ€.
2.3 μ€λλ μμ μ±
μ€νν± λ©μλλ μ¬λ¬ μ€λ λμμ λμμ νΈμΆλ μ μλ€. μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νμ§ μμμΌλ‘μ¨ λμμ± λ¬Έμ λ₯Ό νΌν μ μλ€. μΈμ€ν΄μ€ λ³μλ 곡μ μνμ΄κΈ° λλ¬Έμ μ€λ λ κ°μ μΆ©λμ΄λ λΆμΌμΉκ° λ°μν μ μλ€.
3. μμ μ½λλ‘ μ΄ν΄νκΈ°
μμ 1 : μ€νν± λ©μλμμ μΈμ€ν΄μ€ λ³μ μ κ·Ό μλ
public class MyClass {
private int instanceVar = 42; // μΈμ€ν΄μ€ λ³μ
public static void staticMethod() {
// System.out.println(instanceVar); // μ€λ₯: μΈμ€ν΄μ€ λ³μλ₯Ό μ°Έμ‘°ν μ μμ
}
public void instanceMethod() {
System.out.println(instanceVar); // μΈμ€ν΄μ€ λ©μλλ μΈμ€ν΄μ€ λ³μλ₯Ό μ°Έμ‘° κ°λ₯
}
}
- μ€λ₯ λ°μ:
'staticMethod'λ 'instanceVar'λ₯Ό μ°Έμ‘°ν μ μλ€. μλνλ©΄ 'staticMethod'λ ν΄λμ€ μμ€μμ μ‘΄μ¬νλ©°, νΉμ μΈμ€ν΄μ€μ μ°κ²°λμ§ μκΈ° λλ¬Έμ΄λ€.
- μΈμ€ν΄μ€ λ©μλμμμ μ κ·Ό:
'instanceMethod'λ μΈμ€ν΄μ€ λ³μμ μ κ·Όν μ μλ€. ν΄λΉ λ©μλλ νΉμ κ°μ²΄μ λ©μλλ‘ νΈμΆλλ©°, κ°μ²΄μ μνμ μ κ·Όν μ μλ€.
μμ 2: μ€νν± λ³μμ λ©μλ
public class Counter {
private static int count = 0; // μ€νν± λ³μ
public static void increment() {
count++;
}
public static int getCount() {
return count;
}
public void printCount() {
System.out.println("Count: " + count); // μΈμ€ν΄μ€ λ©μλλ μ€νν± λ³μ μ°Έμ‘° κ°λ₯
}
}
- μ€νν± λ³μ μ¬μ©:
'increment'μ 'getCount' λ©μλλ 'count'λΌλ μ€νν± λ³μλ₯Ό μ‘°μν©λλ€. λͺ¨λ μΈμ€ν΄μ€κ° μ΄ μ€νν± λ³μλ₯Ό 곡μ ν©λλ€.
- μΈμ€ν΄μ€ λ©μλμμλ μ€νν± λ³μ μ°Έμ‘°:
'printCount'λ μΈμ€ν΄μ€ λ©μλμ§λ§, μ€νν± λ³μμΈ 'count'λ₯Ό μ°Έμ‘°ν μ μμ΅λλ€. μ΄λ μ€νν± λ³μκ° λͺ¨λ μΈμ€ν΄μ€μ ν΄λμ€ μμ€μμ 곡μ λκΈ° λλ¬Έμ λλ€.
4. μ€νν± λ©μλμ μ¬λ°λ₯Έ μ¬μ© μ¬λ‘
μ€νν± λ©μλλ μΈμ€ν΄μ€μ λ 립μ μΈ μμ μ μννκ±°λ ν΄λμ€ μ 체μ κ΄λ ¨λ λ‘μ§μ μ²λ¦¬ν λ μ¬μ©λλ€. λ€μμ μ€νν± λ©μλμ μΌλ°μ μΈ μ¬μ© μ¬λ‘μ΄λ€.
4.1 μ νΈλ¦¬ν° λ©μλ
μμ£Ό μ¬μ©λλ κΈ°λ₯μ΄λ κ³μ° λ‘μ§μ ν¬ν¨νλ λ©μλλ₯Ό μ€νν±μΌλ‘ μ μνμ¬ ν΄λμ€ μμ€μμ μ§μ νΈμΆν μ μκ² νλ€.
public class MathUtils {
public static int max(int a, int b) {
return a > b ? a : b;
}
}
- μ¬μ© μμ: 'int result = MathUtils.max(5, 10);'
4.2 ν©ν 리 λ©μλ ν¨ν΄
κ°μ²΄μ μμ± λ‘μ§μ μΊ‘μνν΄ μ€νν± λ©μλλ‘ μ 곡νλ λμμΈ ν¨ν΄μ΄λ€.
public class ShapeFactory {
public static Shape createCircle(double radius) {
return new Circle(radius);
}
public static Shape createSquare(double side) {
return new Square(side);
}
}
- μ¬μ© μμ: 'Shape circle = ShapeFactory.createCircle(5.0);'
4.3 μ±κΈν΄ ν¨ν΄
μ±κΈν΄ ν¨ν΄μ νΉμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό νλλ§ μμ±νλλ‘ μ ννλ©°, μ€νν± λ©μλλ₯Ό ν΅ν΄ μΈμ€ν΄μ€μ μ κ·Όν μ μλλ‘ νλ€.
public class Singleton {
private static Singleton instance;
private Singleton() {
// μμ±μ μ¨κΉ
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
- μ¬μ© μμ: 'Singleton singleton = Singleton.getInstance();'
4.4 μ€νν± λΈλ‘κ³Ό μ΄κΈ°ν
ν΄λμ€ λ‘λ© μ νμν μ΄κΈ°νλ₯Ό μ€νν± λΈλ‘μ ν΅ν΄ μ€μ ν μ μλ€.
public class Config {
static {
System.out.println("Static block executed.");
// μ΄κΈ°ν μ½λ
}
}
- κ²°κ³Ό: 'Config' ν΄λμ€κ° μ²μ λ‘λλ λ μ€νν± λΈλ‘μ΄ μ€νλλ€.
κ²°λ‘
μ€νν± λ©μλλ ν΄λμ€ μμ€μμ μ‘΄μ¬νλ©° νΉμ μΈμ€ν΄μ€μ λ 립μ μΌλ‘ μλνλλ‘ μ€κ³λμ΄ μλ€. λ°λΌμ μΈμ€ν΄μ€ λ³μμλ 무κ΄νκ² λμνλ©°, 곡ν΅μ μΈ κΈ°λ₯μ μ 곡νκ±°λ μΈμ€ν΄μ€ κ°μ 곡μ λμ΄μΌ νλ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ° μ ν©νλ€. μ΄λ₯Ό ν΅ν΄ μλ°μ κ°λ ₯ν νμ μμ€ν κ³Ό κ°μ²΄ μ§ν₯ μ€κ³ μμΉμ μ μ§νλ©°, μ½λμ μμ μ±κ³Ό ν¨μ¨μ±μ 보μ₯ν μ μλ€.
'λΉ κ΅¬λ© μ±μ°κΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] Static ν€μλ μ¬μ© μ μ£Όμν΄μΌ ν μ (0) | 2024.08.01 |
---|---|
[Java] μ€ν ν± λ©μλμμ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ μΈμ€ν΄μ€μ λ©μλλ₯Ό νΈμΆνλ λ°©λ² (0) | 2024.08.01 |
[Java] μ λ€λ¦κ³Ό μμΌλμΉ΄λ (0) | 2024.08.01 |
[JVM] HotSpot compilation (0) | 2024.07.31 |
[OOP] κ°μ²΄λ μ μΌκ΄μ±μ κ°μ ΈμΌ νλκ° (0) | 2024.07.31 |