π Java & Spring & Kotlin/π Java
Java κΈ°λ³ΈνΈ κ°μ_final
carrot0911
2024. 11. 28. 19:56
final
final λ³μμ μμ
final ν€μλλ μ΄λ¦ κ·Έλλ‘ λ! μ΄λΌλ λ»μ΄λ€.
λ³μμ final ν€μλκ° λΆμΌλ©΄ λλ κ°μ λ³κ²½ν μ μλ€.
μ°Έκ³ λ‘ finalμ class, methodλ₯Ό ν¬ν¨ν μ¬λ¬ κ³³μ λΆμ μ μλ€.
final - μ§μ λ³μ
package final1;
public class FinalLocalMain {
public static void main(String[] args) {
// final μ§μ λ³μ
final int data1;
data1 = 10; // μ΅μ΄ νλ²λ§ ν λΉ κ°λ₯
//data1 = 20; // μ»΄νμΌ μ€λ₯ λ°μ
// final μ§μ λ³μ 2
final int data2 = 10;
//data2 = 20; // μ»΄νμΌ μ€λ₯ λ°μ
method(10);
}
static void method(final int parameter) {
//parameter = 20; // μ»΄νμΌ μ€λ₯ λ°μ
}
}
- finalμ μ§μ λ³μμ μ€μ ν κ²½μ° μ΅μ΄ νλ²λ§ ν λΉν μ μλ€. μ΄νμ λ³μμ κ°μ λ³κ²½νλ €λ©΄ μ»΄νμΌ μ€λ₯κ° λ°μνλ€.
- finalμ μ§μ λ³μ μ μΈ μ λ°λ‘ μ΄κΈ°νν κ²½μ° μ΄λ―Έ κ°μ΄ ν λΉλμκΈ° λλ¬Έμ κ°μ ν λΉν μ μλ€.
- 맀κ°λ³μμ finalμ΄ λΆμΌλ©΄ λ©μλ λ΄λΆμμ 맀κ°λ³μμ κ°μ λ³κ²½ν μ μλ€. λ°λΌμ λ©μλ νΈμΆ μμ μ μ¬μ©λ κ°μ΄ λκΉμ§ μ¬μ©λλ€.
final - νλ(λ©€λ² λ³μ)
package final1;
// final νλ - μμ±μ μ΄κΈ°ν
public class ConstructInit {
final int value;
public ConstructInit(int value) {
this.value = value;
}
}
- finalμ νλμ μ¬μ©ν κ²½μ° ν΄λΉ νλλ μμ±μλ₯Ό ν΅ν΄μ νλ²λ§ μ΄κΈ°νλ μ μλ€.
package final1;
public class FieldInit {
static final int CONST_VALUE = 10;
final int value = 10;
public FieldInit(int value) {
//this.value = value; // μ΄κΈ°κ°μ΄ μλ κ²½μ° λΆκ°λ₯
}
}
- final νλλ₯Ό νλμμ μ΄κΈ°ννλ©΄ μ΄λ―Έ κ°μ΄ μ€μ λμκΈ° λλ¬Έμ μμ±μλ₯Ό ν΅ν΄μλ μ΄κΈ°νν μ μλ€.
- static λ³μμλ finalμ μ μΈν μ μλ€.
package final1;
public class FinalFieldMain {
public static void main(String[] args) {
// final νλ - μμ±μ μ΄κΈ°ν
System.out.println("μμ±μ μ΄κΈ°ν");
ConstructInit constructInit1 = new ConstructInit(10);
ConstructInit constructInit2 = new ConstructInit(20);
System.out.println(constructInit1.value);
System.out.println(constructInit2.value);
// final νλ - νλ μ΄κΈ°ν
System.out.println("νλ μ΄κΈ°ν");
FieldInit fieldInit1 = new FieldInit();
FieldInit fieldInit2 = new FieldInit();
FieldInit fieldInit3 = new FieldInit();
System.out.println(fieldInit1.value);
System.out.println(fieldInit2.value);
System.out.println(fieldInit3.value);
// μμ
System.out.println("μμ");
System.out.println(FieldInit.CONST_VALUE);
}
}
static final
- FieldInit.MY_VALUEλ static μμμ μ‘΄μ¬νλ€. κ·Έλ¦¬κ³ final ν€μλλ₯Ό μ¬μ©ν΄μ μ΄κΈ°ν κ°μ΄ λ³νμ§ μλλ€.
- static μμμ λ¨ νλλ§ μ‘΄μ¬νλ μμμ΄λ€. MY_VALUE λ³μλ JVM μμμ νλλ§ μ‘΄μ¬νλ―λ‘ μ€λ³΅κ³Ό λ©λͺ¨λ¦¬ λΉν¨μ¨ λ¬Έμ λ₯Ό λͺ¨λ ν΄κ²°ν μ μλ€.
μμ(Constant)
μμλ λ³νμ§ μκ³ , νμ μΌμ ν κ°μ κ°λ μμ΄λ€.
μλ°μμλ λ³΄ν΅ λ¨ νλλ§ μ‘΄μ¬νλ λ³νμ§ μλ κ³ μ λ κ°μ μμλΌκ³ νλ€.
μλ° μμ νΉμ§
- static final ν€μλλ₯Ό μ¬μ©νλ€.
- λλ¬Έμλ₯Ό μ¬μ©νκ³ κ΅¬λΆμ _(μΈλμ€μ½μ΄)λ‘ νλ€. (κ΄λ‘)
- μΌλ°μ μΈ λ³μμ μμλ₯Ό ꡬλΆνκΈ° μν΄ μ΄λ κ² νλ€.
- νλλ₯Ό μ§μ μ κ·Όν΄μ μ¬μ©νλ€.
- μμλ κΈ°λ₯μ΄ μλλΌ κ³ μ λ κ° μ체λ₯Ό μ¬μ©νλ κ²μ΄ λͺ©μ μ΄λ€.
- μμλ κ°μ λ³κ²½ν μ μλ€. λ°λΌμ νλμ μ§μ μ κ·Όν΄λ λ°μ΄ν°κ° λ³νλ λ¬Έμ κ° λ°μνμ§ μλλ€.
package final1;
// μμ
public class Constant {
// μν μμ
public static final double PI = 3.14;
// μκ° μμ
public static final int HOURS_IN_DAY = 24;
public static final int MINUTES_IN_HOUR = 60;
public static final int SECONDS_IN_HOUR = 60;
// μ ν리μΌμ΄μ
μ€μ μμ
public static final int MAX_USERS = 1000;
}
- μ ν리μΌμ΄μ μμλ λ€μν μμκ° μ‘΄μ¬ν μ μλ€. μν, μκ° λ±λ± μ€μνμμ μ¬μ©νλ μμλΆν°, μ ν리μΌμ΄μ μ λ€μν μ€μ μ μν μμλ€λ μλ€.
- λ³΄ν΅ μ΄λ° μμλ€μ μ ν리μΌμ΄μ μ λ°μμ μ¬μ©λκΈ° λλ¬Έμ publicμ μμ£Ό μ¬μ©νλ€. λ¬Όλ‘ νΉμ μμΉμμλ§ μ¬μ©λλ€λ©΄ λ€λ₯Έ μ κ·Ό μ μ΄μλ₯Ό μ¬μ©νλ©΄ λλ€.
- μμλ μ€μμμ κ°μ νλλ‘ κ΄λ¦¬ν μ μλ€λ μ₯μ λ μλ€.
- μμλ λ°νμμ λ³κ²½ν μ μλ€. μμλ₯Ό λ³κ²½νλ €λ©΄ νλ‘κ·Έλ¨μ μ’ λ£νκ³ , μ½λλ₯Ό λ³κ²½ν λ€μμ νλ‘κ·Έλ¨μ λ€μ μ€νν΄μΌ νλ€.
μΆκ°λ‘ μμλ μ€μμμ κ°μ νλλ‘ κ΄λ¦¬ν μ μλ€λ μ₯μ λ μλ€.
final λ³μμ μ°Έμ‘°
finalμ λ³μμ κ°μ λ³κ²½νμ§ λͺ»νκ² λ§λλ€. μ¬κΈ°μ λ³μμ κ°μ΄λΌλ κ²μ λκΉ?
- λ³μλ ν¬κ² κΈ°λ³Έν λ³μμ μ°Έμ‘°ν λ³μκ° μλ€.
- κΈ°λ³Έν λ³μλ 10, 20 κ°μ κ°μ 보κ΄νκ³ , μ°Έμ‘°ν λ³μλ κ°μ²΄μ μ°Έμ‘°κ°μ 보κ΄νλ€.
- finalμ κΈ°λ³Έν λ³μμ μ¬μ©νλ©΄ κ°μ λ³κ²½ν μ μλ€.
- finalμ μ°Έμ‘°ν λ³μμ μ¬μ©νλ©΄ μ°Έμ‘°κ°μ λ³κ²½ν μ μλ€.
- μ°Έμ‘° λμμ κ°μ²΄ κ°μ λ³κ²½ν μ μλ€.
- μ°Έμ‘°ν λ³μμ finalμ΄ λΆμΌλ©΄ μ°Έμ‘°ν λ³μμ λ€μ΄μλ μ°Έμ‘°κ°μ λ€λ₯Έ κ°μΌλ‘ λ³κ²½νμ§ λͺ»νλ€.
μ΄μ λ€λ₯Έ κ°μ²΄λ₯Ό μ°Έμ‘°ν μ μλ€λ λ»μ΄λ€.
νμ§λ§ μ°Έμ‘°ν λ³μμ λ€μ΄μλ μ°Έμ‘°κ°λ§ λ³κ²½νμ§ λͺ»νκ³ value κ°μ λ³κ²½ν μ μλ€.
- μ°Έμ‘°ν λ³μμ finalμ΄ λΆμΌλ©΄ μ°Έμ‘°ν λ³μμ λ€μ΄μλ μ°Έμ‘°κ°μ λ€λ₯Έ κ°μΌλ‘ λ³κ²½νμ§ λͺ»νλ€.