[Java] static variable, static methodμ λν΄
by rlaehddnd0422Staticμ΄ λ¬΄μμΈκ°?
staticμ "μ μ ", "κ³ μ λ"μ΄λ μλ―Έλ₯Ό κ°μ§κ³ μμ΅λλ€.
μλ°μμλ 'static' ν€μλλ₯Ό μ¬μ©νμ¬ static λ³μμ static λ©μλ, static ν΄λμ€λ₯Ό λ§λ€ μ μμ΅λλ€.
Javaμμ static ν€μλλ₯Ό μ¬μ©νλ€λ κ²μ λ©λͺ¨λ¦¬μ νλ²μ ν λΉλμ΄ νλ‘κ·Έλ¨μ΄ μ’ λ£λ λ ν΄μ νλ κ²μ μλ―Έν©λλ€.
μκ° μλ―Ένλ κ²μ μ½κ² νμ΄λ΄λ©΄ JVMμ GC(κ°λ°μ§ 컬λ ν°)μ κ΄λ¦¬ μμ λ°μ μ‘΄μ¬νμ¬, static μμμ ν λΉλ λ©λͺ¨λ¦¬λ λͺ¨λ κ°μ²΄κ° 곡μ ν μ μμ΅λλ€.
static ν€μλλ λ³μλ νλμμ λΆμ¬ μ¬μ©ν μ μμ΅λλ€.
μ¦ staticμ΄ λΆμ λ³μλ μ΄λμμλ 곡μ νμ¬ μ¬μ©νλ λ³μμ΄κ³ , staticμ΄ λΆμ λ©μλλ μ΄λμμλ 곡μ νμ¬ μ¬μ©νλ λ©μλμ λλ€.
Static λ³μ ( μ μ λ³μ )
μλ₯Όλ€μ΄ μλμ κ°μ ν΄λμ€κ° μμ λ, ν΄λμ€λ‘λΆν° μμ±λ κ° μΈμ€ν΄μ€λ nameμ΄λ νλ‘νΌν°μ "human_being"μ΄λΌλ κ°μ΄ ν λΉλμ΄ κ° μΈμ€ν΄μ€λ§λ€ λ©λͺ¨λ¦¬λ₯Ό ν λΉνμ¬ κ°μ κ°κ² λ©λλ€.
public class Person {
private String name = "human_being";
public void printName() {
System.out.println(this.name);
}
}
public class PersonTest {
public static void main(String[] args) {
Person p = new Person();
p.printName();
Person p2 = new Person();
p2.printName();
}
}
μ΄λ κ² κ³΅ν΅μ μΌλ‘ κ°μ νλλ₯Ό κ°μ§λ§ 100κ°μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νκ² λλ©΄ λ©λͺ¨λ¦¬ ν¨μ¨μ΄ λλΉ μ§λλ€. μ΄λ΄ static ν€μλλ₯Ό μ¬μ©ν΄ 곡ν΅μ μΌλ‘ κ°μ λ©λͺ¨λ¦¬μ νλμ κ°λ§ ν λΉνμ¬ κ³΅μ νμ¬ μ¬μ©νλ©΄ μΈλ°μλ λ©λͺ¨λ¦¬ λλΉλ₯Ό λ§μ μ μκ² μ΅λλ€.
public class Person {
public static final String name = "human_being";
public void printName() {
System.out.println(this.name);
}
}
public class PersonTest {
public static void main(String[] args) {
System.out.println("Person.name = " + Person.name);
}
}
βοΈ μΌλ°μ μΌλ‘ μ μ λ³μλ μμμ κ°μ κ°λ κ²½μ°κ° λ§μ
1. publicμΌλ‘ μ μΈνκ³ ,
2. λ³κ²½μ΄ λΆκ°λ₯νλλ‘ finalλ‘ λ§μ
public static final νμ λ³μλͺ = 리ν°λ΄; λ‘ μ¬μ©νλκ² μΌλ°μ μ λλ€.
Static Method (μ μ λ©μλ)
static method λν κ°μ²΄μ μμ± μμ΄ ν΄λμ€ λ 벨μμ νΈμΆμ΄ κ°λ₯νλ©°, κ°μ²΄μμλ νΈμΆμ΄ λΆκ°λ₯ν©λλ€.
μΌλ°μ μΌλ‘ μμ£Ό μ¬μ©νλ μ νΈλ¦¬ν° κ΄λ ¨ ν΄λμ€λ€μ 보면 static λ©μλλ‘ κ΅¬νλμ΄ μμ΄ μΈμ€ν΄μ€ μμ± μμ΄ λ°λ‘ ν΄λμ€ λ 벨μμ νΈλ¦¬νκ² μ¬μ©ν μ μμ΅λλ€.
μμ)
public class StaticMethodTest {
public static void main(String[] args) {
System.out.println("Math.abs(-1) = " + Math.abs(-1));
}
}
- μΆκ°μ μΌλ‘ static methodμμλ static ν€μλκ° λΆμ μ μ λ³μμλ§ μ κ·Όν μ μκ³ μΈμ€ν΄μ€ λ³μμλ μ κ·Όν μ μμ΅λλ€.
μ μ λ©μλ(static method)λ₯Ό μ νλ κΈ°μ€
1. λ©μλκ° μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νμ§ μμ λ.
2. μΈμ€ν΄μ€ μμ±μ μμ‘΄νμ§ μμ λ.
3. μ΄λ€ λ©μλκ° μ¬λ¬ ν΄λμ€μμ 곡μ λκ³ μμΌλ©°, μ΄ λ©μλλ₯Ό static λ©μλλ‘ μΆμΆν΄λΌ μ μμ λ
μ¦, μΈμ€ν΄μ€ λ³μμ λ°μ ν μμ μ νλ λ©μλλ (staticμ΄ λΆμ§ μμ) λ©μλλ‘ μ¬μ©νκ³ ,
μΈμ€ν΄μ€μ κ΄κ³μλ (μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ©νμ§ μλ ) κ²½μ° static λ©μλλ₯Ό μ¬μ©ν©λλ€.
<μμ½>
- static λ³μ, static λ©μλλ ν΄λμ€ λ 벨μμ μ¬μ© κ°λ₯νκΈ° λλ¬Έμ κ΅³μ΄ μΈμ€ν΄μ€λ₯Ό λ§λ€ νμκ° μμ΅λλ€.
- λ°λ©΄ μΈμ€ν΄μ€ λ³μ, μΈμ€ν΄μ€ λ©μλλ μΈμ€ν΄μ€λ₯Ό μμ±ν΄μΌ μ¬μ©ν μ μμ΅λλ€.
- μΈμ€ν΄μ€ λ©μλλ μΈμ€ν΄μ€ λ³μμ λ°μ ν μμ μ νλ λ©μλμ λλ€.
- static λ©μλλ static λ³μμ λ°μ ν μμ μ νλ λ©μλλ‘, μΈμ€ν΄μ€ λ³μμ μ κ·Όν μ μμ΅λλ€.
- λ¬Όλ‘ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νμ§ μλλ€κ³ ν΄μ μΈμ€ν΄μ€ λ©μλκ° μλ static λ©μλλ‘ μ μνλ κ²μ΄ νμμ μΈ κ²μ μλλ, μΌλ°μ μΌλ‘ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νμ§ μμΌλ©΄ static λ©μλλ‘ μ μν©λλ€.
static method β‘οΈ μΈμ€ν΄μ€ λ³μ, μΈμ€ν΄μ€ λ©μλ μ¬μ© λΆκ°λ₯
μ€λ‘μ§ static λ©μλ, static λ³μμλ§ μ κ·Ό κ°λ₯
instance Method β‘οΈ μΈμ€ν΄μ€ λ³μ, μΈμ€ν΄μ€ λ©μλ μ¬μ© κ°λ₯
λ€λ§, μΈμ€ν΄μ€ λ©μλλ static λ©μλ, static λ³μμλ μ κ·Όν μ μλ€.
<μ°Έκ³ μλ£>
'π Backend > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μ κ·Ό μ μ΄μ(public, protected, default, private)μ λν΄ (0) | 2023.09.25 |
---|---|
[Java] thisμ this()μ λν΄ (0) | 2023.09.25 |
[Java] κ°μ²΄(Object)μ ν΄λμ€(Class)μ λν΄ (0) | 2023.09.22 |
[Java] PSμμ μμ£Ό μ¬μ©νλ μ λ ₯ ν΄λμ€μ λν΄ (0) | 2023.09.21 |
[Java] νμ€ μ μΆλ ₯ ν΄λμ€ Systemμ λν΄ (0) | 2023.09.21 |
λΈλ‘κ·Έμ μ 보
Study Repository
rlaehddnd0422