728x90
λ°μν
Javaμ finalκ³Ό static ν€μλ
Javaμμ finalκ³Ό static ν€μλλ μ½λμ λΆλ³μ±κ³Ό μ μ νΉμ±μ λνλ΄λ©°, κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μ€μν μν μ νλ€.
μ΄ ν¬μ€ν μμλ μ΄ λ ν€μλμ μλ―Έ, μ¬μ© λ°©λ² κ·Έλ¦¬κ³ μΆκ°λ‘ μ μ λ©μλμ μ μ ν΄λμ€μ μ°¨μ΄λ₯Ό μ€μ¬μΌλ‘ μ 리ν μμ μ΄λ€.
Fianl: κ³ μ - μμ λΆκ°λ₯
Final Field : κ°μ΄ λ³νμ§ μλλ€.
- final νλλ μ΄κΈ°νλ ν κ°μ΄ λ³κ²½λ μ μλ μμμ΄λ€. (JavaScriptμ const) μ΄ κ°μ μμ±μλ νλ μ΄κΈ°ν μμλ§ μ€μ λ μ μμΌλ©°, κ·Έ μ΄νμλ μμ μ΄ λΆκ°λ₯νλ€,.
- μ°Έμ‘° νμ μ κ²½μ°μλ κ°μ²΄μ μ°Έμ‘° μ£Όμλ λ³κ²½ν μ μμ§λ§, κ°μ²΄ λ΄λΆ κ°μ λ³κ²½ν μ μλ€.
μμ μ½λ
final int[] FINAL_ARRAY = new int[]{1, 2, 3};
FINAL_ARRAY[0] = 10; // λ΄λΆ κ°μ λ³κ²½ κ°λ₯
// κ²°κ³Ό: [10, 2, 3]
- μ¬μ© μκΈ°
- λ³νμ§ μλ μμ κ°μ μ μν λ μ μ©νλ€. μλ₯Ό λ€μ΄, final doucle PI = 3.14159; μ²λΌ μνμ μμλ₯Ό μ μνλ κ²½μ°μ μμ£Ό μ¬μ©νλ€.
Final Method: μμ μ Override λΆκ°
- final λ©μλλ μλΈν΄λμ€μμ μ¬μ μ(Override)ν μ μλ€. μ΄ λ©μλμ ꡬνμ΄ λ³κ²½λλ©΄ μλλ κ²½μ°μλ§ μ¬μ©νλ€.
μμ μ½λ
class Parent {
public final void display() {
System.out.println("This is a final method");
}
}
class Child extends Parent {
// display() λ©μλλ μ¬μ μν μ μμ
}
- μ¬μ©μκΈ°
- νΉμ λ©μλκ° μμλ°μ ν΄λμ€μμ μ¬μ μλ μ μλλ‘ νκ³ μΆμ λ μ¬μ©νλ€. ν΅μ¬ λ‘μ§μ 보νΈνκ³ , μλμΉ μμ λμ λ³κ²½μ λ°©μ§ν μ μλ€.
Final ν΄λμ€: μμ λΆκ°
- final ν΄λμ€λ μμν μ μλ ν΄λμ€μ΄λ€. μ¦, λ€λ₯Έ ν΄λμ€μμ extends ν€μλλ₯Ό μ¬μ©νμ¬ νμ₯ν μ μλ€.
final class Animal {
// μ΄ ν΄λμ€λ μμν μ μλ€.
}
class Cat extends Animal { // μ€λ₯ λ°μ
}
- μ¬μ©μκΈ°
- μμ보λ€λ ν©μ±μΌλ‘ μ¬μ©νλ€. → λμμΈ ν¨ν΄ μμΉ: "μμ보λ€λ ν©μ±" - μμμ μλ κ²μ΄ λ§λ€.
μμ μ½λ(μμ: Inheritance)
class Animal {
public void hello() { // hello λ‘μ§μ΄ λ°λμμ κ²½μ°μ λ€λ₯Έ Puppy λ±μ κ°μ²΄μ μν₯μ μ€λ€ : μλΆλͺ¨λμ μν₯λ ₯
}
public void world() { // Cat μμ λ°μΌλ‘ λ
ΈμΆ : λΆλͺ¨μ λΉ
}
}
// Inheritance
class Cat extends Animal {
public void cat() {
this.hello();
}
}
μμ μ½λ(ν©μ±: Composition)
class CAnimal implements IAnimal {
public void hello() {
}
}
class BAnimal implements IAnimal {
public void hello() {
}
}
// Composition
class CCat {
// private CAnimal cAnimal = new CAnimal();
private IAnimal cAnimal = new BAnimal();
public void cat() {
cAnimal.hello();
}
}
Static: μΈμ€ν΄μ€ν μμ΄ μ¬μ© κ°λ₯
Static νλ
- static νλλ μν ν΄λμ€μ λͺ¨λ μΈμ€ν΄μ€κ° 곡μ νλ€. κ°μ²΄μ κ·μλμ§ μκΈ° λλ¬Έμ λ΄λΆ μ¬μ© μ thisλ₯Ό ν μ μλ€.
μμ μ½λ
public class Example {
public static int count = 0;
}
- μ¬μ© μκΈ°
- ν΄λμ€μ μνλ 곡μ λ°μ΄ν°λ₯Ό λνλΌ λ μ¬μ©λλ€. μλ₯Ό λ€μ΄, μ νΈλ¦¬ν° ν΄λμ€μ μμλ μ΄ν리μΌμ΄μ μμ 곡μ μμμ κ΄λ¦¬ν λ μ μ©νλ€.
Static λ©μλ
- static λ©μλλ μΈμ€ν΄μ€ν μμ΄ νΈμΆν μ μλ λ©μλμ΄λ€. μ΄λ κ°μ²΄μ μνμ μκ΄μμ΄ λμνλ λ‘μ§μ ꡬνν λ μ¬μ©λλ€.
μμ μ½λ
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
}
// νΈμΆ μμ
int result = MathUtils.add(5, 3);
- μ¬μ© μκΈ°
- κ°μ²΄ μνμ 무κ΄ν μμ μ μνν λ μ¬μ©νλ€. μλ₯Όλ€μ΄, μνμ κ³μ°, λ°μ΄ν° λ³ν λ±μ μμ μ ν λ μ ν©νλ€.
Static ν΄λμ€ (μ€μ²© ν΄λμ€)
- μ μ μ€μ²© ν΄λμ€(static nested class)λ μΈλΆ ν΄λμ€μ μΈμ€ν΄μ€ μμ΄ μ¬μ©ν μ μλ ν΄λμ€λ€.
- μΌλ°μ μΌλ‘ λ΄λΆ ν΄λμ€λ μΈλΆ ν΄λμ€μ κ°νκ² κ²°ν©λμ΄ μμ§λ§, μ μ ν΄λμ€λ λ 립μ μΌλ‘ λμνλ€.
μμ μ½λ
public class OuterClass {
static class NestedStaticClass {
public void printMessage() {
System.out.println("Static Nested Class");
}
}
}
// νΈμΆ μμ
OuterClass.NestedStaticClass nestedObject = new OuterClass.NestedStaticClass();
netstedObject.printMessage();
- μ¬μ© μκΈ°
- μΈλΆ ν΄λμ€μ μΈμ€ν΄μ€μ μμ‘΄νμ§ μμ κΈ°λ₯μ ꡬνν λ μ¬μ©νλ€. μ£Όλ‘ μ νΈλ¦¬ν° ν΄λμ€λ νΉμ λ‘μ§μ λ 립μ μΌλ‘ ꡬνν λ μ ν©νλ€.
μ μ λ©μλμ μ μ ν΄λμ€μ μ°¨μ΄
μ μ λ©μλ:
- μ μ λ©μλλ ν΄λμ€μ μΈμ€ν΄μ€ν μμ΄ ν΄λμ€ λ 벨μμ νΈμΆν μ μλ ν¨μμ΄λ€.
- μ£Ό κΈ°λ₯: κ°μ²΄ μνμλ 무κ΄ν λ 립μ μΈ μμ μ μννλ€. μλ₯Ό λ€μ΄, μν κ³μ°, λ¬Έμμ΄ μ‘°μ, λ°μ΄ν°λ₯Ό λ³ννλ κΈ°λ₯ λ±μ΄ μλ€.
μμ μ½λ
public class Utility {
public static int calculatedSum(int a, int b) {
return a + b;
}
}
- νΉμ§:
- ν΄λμ€μ μν λ©μλλ‘, μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ νΈμΆμ΄ κ°λ₯νλ€.
- κ°μ²΄ μνμ μ κ·Όν μ μμΌλ©°, ν΄λμ€ λ 벨μ μμ λ§ μ²λ¦¬ν μ μλ€.
μ μ ν΄λμ€:
- μ μ ν΄λμ€λ μΈλΆ ν΄λμ€μ μΈμ€ν΄μ€μ κ΄κ³μμ΄ λ 립μ μΌλ‘ μ‘΄μ¬ν μ μλ μ€μ²© ν΄λμ€μ΄λ€.
- μ£Ό κΈ°λ₯: μΈλΆ ν΄λμ€μ λ 립μ μΌλ‘ λμνλ λ‘μ§μ ꡬννκ±°λ, μΈλΆ ν΄λμ€μ λΆμ κΈ°λ₯μ μ 곡ν μ μλ€.
μμ μ½λ
public class OuterClass {
static class NestedStaticClass {
public void printMessage() {
System.out.println("Static Nested Class");
}
}
}
- νΉμ§:
- μΈλΆ ν΄λμ€μμ κ΄κ³ μμ΄ λ 립μ μΌλ‘ μ¬μ©ν μ μλ€.
- μΈλΆ ν΄λμ€μ μΈμ€ν΄μ€ μμ΄λ μ€μ²© ν΄λμ€λ₯Ό μ¬μ©ν μ μμΌλ©°, μ£Όλ‘ μΈλΆ ν΄λμ€μμ μμ‘΄μ±μ΄ μλ λΆμ κΈ°λ₯μ ꡬνν λ μ¬μ©νλ€.
βΉοΈ μ°Έκ³
[ASAC 6κΈ° κ°μμλ£]
λ°μν
'π»DEV-STUDY > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] Enum (0) | 2024.10.01 |
---|---|
[Java] Interface / Abstract Class (1) | 2024.10.01 |
[Java] Collection (0) | 2024.09.28 |
[Java] κ°μ²΄ μμ±νλ 3κ°μ§ λ°©λ² (0) | 2024.09.25 |
[Java] JVM (Java Virtual Machine) (3) | 2024.09.25 |