Static μ΄λ?
Javaμμ Static ν€μλλ₯Ό μ¬μ©νλ©΄ λ©λͺ¨λ¦¬μ νλ² ν λΉλμ΄ νλ‘κ·Έλ¨μ΄ μ’ λ£λ λ μμ΄μ§λ κ²μ μλ―Ένλ€.
λ©λͺ¨λ¦¬ μμμ λν΄ μ΄ν΄λ₯Ό νκ³ μλ€λ©΄ μ‘°κΈ μ¬μΈ κ²μ΄λ€.
μ°λ¦¬κ° μμ±ν Classλ Static μμμ μμ±μ΄ λκ³ , new μ°μ°μ ν΅ν΄ μμ±ν κ°μ²΄λ Heapμμμ ν λΉμ΄ λλ€.
μ΄λ¬ν μ΄μ λλ¬Έμ String ν΄λμ€μ λΉκ΅λ₯Ό λλ±μ°μ°μ(==, !=) μ΄ μλ equal()μ ν΅ν΄ λΉκ΅λ₯Ό νλ€.
μ€νμμ ν΄λμ€μ μ£Όμλ₯Ό κ°λ¦¬ν€κΈ° λλ¬Έμ κ°μ λ¬Έμμ΄ μ΄λλΌλ λλ±μ°μ°μλ₯Ό μ¬μ©νλ©΄ λ€λ₯΄λ€κ³ λμ€λ κ²μ΄λ€.
κ°μ²΄μ μμ±μ ν λΉλ Heap μμμ λ©λͺ¨λ¦¬λ GC(Garbage Collector)λ₯Ό ν΅ν΄ μμλ‘ κ΄λ¦¬λ₯Ό λ°λλ€.
νμ§λ§ Static ν€μλλ₯Ό ν΅ν΄ Static μμμ ν λΉλ λ©λͺ¨λ¦¬λ λͺ¨λ κ°μ²΄κ° 곡μ νλ λ©λͺ¨λ¦¬μ΄λ€. μ΄λ¬ν μ₯μ μ΄ μμ§λ§ GCκ° κ΄λ¦¬ν΄μ£Όμ§ μκΈ° λλ¬Έμ Staticμ μμ£Ό μ¬μ©νλ©΄ νλ‘κ·Έλ¨μ λ©λͺ¨λ¦¬ ν¨μ¨μ΄ λ¨μ΄μ§κ² λλ©° μμ€ν μ νΌν¬λ¨Όμ€μ μ μν₯μ μ€λ€.
Static λ³μ
λ©λͺ¨λ¦¬μ κ³ μ μ μΌλ‘ ν λΉλμ΄, νλ‘κ·Έλ¨μ΄ μ’ λ£λ λ ν΄μ λλ λ³μ / λ©μλ
Static λ³μλ ν΄λμ€ λ³μμ΄λ€. κ°μ²΄λ₯Ό μμ±νμ§ μκ³ λ Static μμμ μ κ·Όμ΄ κ°λ₯νλ€.
λ©λͺ¨λ¦¬μ νλ² ν λΉμ΄ λλ―λ‘ μ¬λ¬ κ°μ²΄λ₯Ό μμ±ν΄λ ν΄λΉ λ©λͺ¨λ¦¬λ₯Ό 곡μ νκ² λλ€.
public class Car{
private String name = "Audi";
public void printCarName(){
System.out.println(this.name);
}
}
μ΄λ¬ν Car λΌλ ν΄λμ€κ° μλ€κ³ κ°μ νμ. μ΄ λ 100κ°μ Car μΈμ€ν΄μ€λ₯Ό μμ±νκ² λλ©΄ "Audi"λΌλ μ΄λ¦μ κ°λ λ©λͺ¨λ¦¬κ° μ€λ³΅λλ κ±Έ μ μ μλ€. μ΄λ° κ²½μ°μ Staticμ μ¬μ©νμ¬ μ¬λ¬ κ°μ²΄κ° νλμ λ©λͺ¨λ¦¬λ₯Ό μ°Έμ‘°νκ² νλ©΄ λ©λͺ¨λ¦¬ λλΉκ° μμ΄μ§ κ²μ΄λ€. κ·Έλ¦¬κ³ μμ final ν€μλκ° λΆμΌλ©΄ λ³νμ§ μλ κ°μ΄ λλ€. Audi λΌλ νμ¬ μ΄λ¦μ λ³νμ§ μκΈ° λλ¬Έμ λΆμΌ μ μλ€.
public class Car{
public static String name = "Audi";
public static void printCarName(){
System.out.println(this.name);
}
}
μμ κ°μ μ΄μ λ‘ static λ³μλ public / finalκ³Ό ν¨κΌ μ¬μ©λμ΄ public static final λ‘ μμ£Ό μ°μΈλ€.
μμ μ½λμμ printCarNameμ΄λΌλ ν¨μ λν static ν€μλκ° λΆμ΄ static λ©μλμ΄λ€. Static λ³μλ static λ©μλλ₯Ό ν΅ν΄ μ κ·Όνλλ‘ κΆμ₯νκΈ° λλ¬Έμ μ΄λ¬ν λ°©μμ μ¬μ©νλ€.
Static λ©μλ
Static Methodλ κ°μ²΄μ μμ± μμ΄ νΈμΆμ΄ κ°λ₯νκ³ , κ°μ²΄μμλ νΈμΆμ΄ λΆκ°λ₯νλ€.
μ΄κ² μ΄λ€ μλ―ΈμΈμ§ μ²μμ μ΄ λ§μ΄ μ μ΄ν΄κ° λμ§ μμλλ° μλ₯Ό λ€μ΄μ 보면 μ½λ€.
public class Car{
public static String name = "Audi";
public static void printCarName(){
System.out.println(this.name);
}
}
public class Test{
public static void main(String[] args){
Car myCar = new Car();
...
}
}
μΌλ°μ μΌλ‘ κ°μ²΄λ₯Ό μμ±ν΄μΌ κ°μ²΄ μμ μλ λ©μλλ₯Ό μ¬μ©μ΄ κ°λ₯νλ€.
νμ§λ§ μλμ μ½λλ₯Ό 보면 κ°μ²΄λ₯Ό μ μΈνμ§ μμλ printNameμ΄λΌλ λ©μλλ₯Ό νΈμΆνλ€. (Mainν¨μλ μλ΅)
public class Example{
public String name1 = "World";
public static String name2 = "Hello";
public static void printName(){
System.out.println(this.name1); // λΆκ°λ₯
System.out.println(this.name2);
}
public void printTest(){
System.out.println(this.name1);
System.out.println(this.name2);
}
}
Math.max(1,2);
Example.printName();
μ΄κ²μ΄ λ°λ‘ Static Methodμ μ₯μ μ΄λ€. μ°λ¦¬κ° νν μ¬μ©νλ Scanner κ°μ²΄λ import λ₯Ό ν΄μ€μΌ μ¬μ©μ΄ κ°λ₯νλ€.
νμ§λ§ Math λ importλ₯Ό ν΄μ£Όμ§ μμλ λ°λ‘ μ¬μ©μ΄ κ°λ₯νλ° μ΄λ Math λ λνμ μΈ Static λ©μλμ΄λ€.
μ¬κΈ°μ μ£Όμν΄μΌ ν μ μ printNameμ΄λ€.
Static λ©μλμμλ staticμ΄ μ μΈλμ§ μμ λ³μμ μ κ·Όμ΄ λΆκ°λ₯νλ€. μ‘°κΈλ§ κΉκ² μκ°ν΄λ³΄λ©΄ μ¬μ΄ λ¬Έμ μΈλ° λ©λͺ¨λ¦¬ ν λΉμ μκ°ν΄λ³΄μ.
Exampleμ name1μ Example example = new Example(); μ μ΄μ©ν΄μ κ°μ²΄λ₯Ό μμ±ν΄μ€λ€. μμ±κ³Ό λμμ name1μ΄ λ©λͺ¨λ¦¬μ ν λΉμ΄ λλ κ²μ΄λ€.
νμ§λ§ μμ μ½λλ κ°μ²΄λ₯Ό μμ±νμ§ μκ³ static λ©μλλ₯Ό μ΄μ©νκΈ° λλ¬Έμ ν λΉλμ§ μμ λ©λͺ¨λ¦¬ μμμ μ κ·Όμ νκΈ° λλ¬Έμ μ€λ₯κ° λ°μνλ€. λ°λΌμ static λ³μμ μ κ·ΌνκΈ° μν λ©μλλ λ°λμ static λ©μλκ° λμ΄μΌ νλ€.
Static λ³μμ λ©μλ νμ©
μΌλ°μ μΌλ‘ μμλ€λ§ λͺ¨μμ μ¬μ©νλ©° λλ¬Έμμ _λ₯Ό μ‘°ν©νμ¬ μ΄λ¦μ μ§λλ€.
λν μμμ λ°©μ§νκΈ° μν΄ fincal classλ‘ μ μΈμ νλ€.
public final class Application{
public static final String APP_NAME = "MyApp";
}
'π» BackEnd > π¨ Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
π¨ [Java] [ν΄λμ€] μλ° ν΄λμ€ (0) | 2023.04.25 |
---|---|
π¨ [Java] Exception(μμΈ μ²λ¦¬) (0) | 2023.04.19 |
π¨ [Java] λΌμ΄λΈλ¬λ¦¬ / λͺ¨λ (0) | 2023.04.18 |
π¨ [Java] λ¬Όν μ¬κ³ κ΄λ¦¬ νλ‘κ·Έλ¨ λ§λ€κΈ° (0) | 2023.04.09 |
π¨ [Java] κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(Object Oriented Programming) (0) | 2023.04.05 |