
π μ°Έκ³ ν μ±

- κΈ°λ³Έμ μΈ κ°λ μ μ 리νκ³ μΆκ°μ μΌλ‘ κΆκΈν κ²λ€μ μ 리νμ΅λλ€ -
π₯ π₯ π₯
βοΈ final μ μ΄μ_ 379p
β’ final λ³μ
: ν λ² λμ λ κ°μ μμ ν μ μμΌλ©°, ν λ² λμ λ κ°μ΄ μ΅μ’ κ°μ΄ λλ€.
class A {
int a;
final int b;
A() {
a = 3;
b = 5;
}
}
class B {
int a = 3;
final int b = 5;
B() {
}
}
ν΄λμ€ Aλ μ μΈκ³Ό κ°μ λμ μ λΆλ¦¬νμλ€. ν΄λμ€ Bλ μ μΈκ³Ό κ°μ λμμ λμ νλ€. μ΄λ final νλλ₯Ό κ°κ³Ό λμμ μ μΈνμ§ μμμ κ²½μ° κ°μ μ΄κΈ°νλ λ°λμ μμ±μμμ μ΄λ€μ ΈμΌνλ€. final νλλ μΌλ° νλμ λ€λ₯΄κ², κ°μ μ΄κΈ°νλμ§ μλλ€. κ·Έλμ κ°μ΄ λμ ν ν κ°μ μ λ ₯νλ νμ μ체λ ν μ μλ€.
Q. μ μμ±μμμ μ΄κΈ°νλ₯Ό νλλ‘ ν κΉ?
A. κ·Έ μ΄μ λ κ°μ²΄λ§λ€ λ€λ₯Έ κ°μ κ°μ§ μ μλλ‘ νκΈ° μν¨μ΄λ€.
class Car { final String model; Car(String model) { this.model = model; } void printModel() { System.out.println("μ°¨ λͺ¨λΈ μ΄λ¦μ 무μμ λκΉ? : " + model); } } public class Main { public static void main(String[] args) { Car car1 = new Car("Tesla"); Car car2 = new Car("BMW"); car1.printModel(); // Car model: Tesla car2.printModel(); // Car model: BMW } }
λ§μ½ μ μΈκ³Ό κ°μ κ°μ΄ λμ νλ€λ©΄ κ° κ°μ²΄λ§λ€ κ°μ κ°μ κ°μ ΈμΌλ§ ν κ²μ΄λ€. μν©μ λ°λΌ κ°μ²΄λ§λ€ λ€λ₯Έ κ°μ κ°μ§λ κ²μ΄ νμν μ μλ€. κ·Έλ κΈ°μ μμ±μλ₯Ό ν΅ν΄ final λ³μ κ°μ λμ νλ€λ©΄ μμ μ½λμ κ°μ΄ κ°μ²΄λ§λ€ λ€λ₯Έ κ°μ κ°μ§κ² ν μ μλ€.
β’ μμ μμ
: ν μμμ Permanent area(κ³ μ μμ)μ μμ±λμ΄ Java νλ‘μΈμ€μ μ’ λ£κΉμ§ κ³μ μ μ§λλ λ©λͺ¨λ¦¬ μμ
class A{
int a;
final int b;
A() {
a = 3;
b = 5;
}
}
νλλ λ©€λ²μ΄λ―λ‘ final νλμ΄λ , μλλ κ°μ²΄ μμ ν¬ν¨λλ€. νμ§λ§ κ°μ²΄κ° λ§λ€μ΄μ§ λ finalλ‘ μ μΈλ νλ κ°μ μμ μμμ 1κ°κ° 볡μ¬λλ€. finalλ‘ μ μΈλ λͺ¨λ νλ κ°μ μμ μμμ 볡μ¬λλ―λ‘ μ²« λ²μ§Έ λ©λͺ¨λ¦¬ μμμ μμ μμμ΄λΌκ³ λΆλ₯Έλ€. μ΄λ κ°μ 볡μ¬λ μ μΈν ν μ΅μ΄λ‘ κ°μ΄ μ΄κΈ°νλ λ λ± ν λ² μΌμ΄λλ€.
finalμ΄ λΆμ§ μμ μ€ν λ©λͺ¨λ¦¬μ λ³μ«κ°μ μμ μ΄ λ§λ€μ΄μ§ λ©μλκ° μ’ λ£λλ©΄ λ©λͺ¨λ¦¬μ μ¬λΌμ§λ€. νμ§λ§ μ΄λ²€νΈλ₯Ό μ²λ¦¬ν λ λ©λͺ¨λ¦¬μμ μ¬λΌμ§ κ·Έ λ³μλ₯Ό λ€μ μ¬μ©ν΄μΌνλ κ²½μ°κ° μλλ°, μ΄λ° κ²½μ°λ₯Ό μν΄μ 볡μ¬λ³Έμ νλ λ§λ€μ΄ λκ³ μλ³Έμ΄ μμ λλλΌλ κ·Έ κ°μ νμ©ν μ μκ² λ§λ€μλ€.
λ©λͺ¨λ¦¬ μμνμμ μ΄λ?
8. λ©λͺ¨λ¦¬ μμνμμ? λ©λͺ¨λ¦¬ ꡬ쑰 κ°μΈμ μΌλ‘ μ»΄ν¨ν° 곡λΆλ₯Ό νλ©΄μ κ°μ₯ μ€μνκ² μκ°νλ λΆλΆμ λ°λ‘ λ©λͺ¨λ¦¬μ΄λ€. λ°μ΄ν° μμ(Data Area)λ°μ΄ν° μμμ μ μ λ³μμ static λ³μκ° ν λΉλλ
coderbycode.tistory.com
β’ final λ©μλ
: μ΅μ’ λ©μλλΌκ³ λΆλ¦¬λ©° λ©μλ κΈ°λ₯ λ³κ²½μ΄ μ΄λ€μ§μ§ μλλ€. (μ€λ²λ¦¬μ΄λ© X)
class A {
void abc() {
}
final void bcd() {
}
}
β’ final ν΄λμ€
: μ΅μ’ ν΄λμ€λΌκ³ λΆλ¦¬λ©°, λ μ΄μ μμ ν΄λμ€κ° μμΌλ©° μμ μμ²΄κ° λΆκ°νλ€.
final class A{
}
final ν΄λμ€μ λΉμ·ν κ²μ΄ String ν΄λμ€κ° μλ€. String ν΄λμ€λ final ν΄λμ€λ‘ μ μλμ΄ μμ΄μ λ§μ°¬κ°μ§λ‘ String ν΄λμ€λ₯Ό μμλ°μ μμ ν΄λμ€λ‘ μ΄μ©ν μ μλ€.
Q. Stringκ³Ό finalμ μ°¨μ΄μ μ?
A. Stringμ λΆλ³ κ°μ²΄λ‘ ν λ² μμ±λ λ¬Έμλ λ³κ²½ν μ μλ€. κ·Έ μ μ finalκ³Ό κ°μ§λ§, Stringμ μ°Έμ‘°(μ£Όμ)λ₯Ό λ³κ²½ν μ μλ€.
public class Test { public static void main(String[] args) { String str = "Hello"; str = "World"; System.out.println(str); } }
"Hello"μ κ°μ΄ "World"λ‘ λ³κ²½λλκ² μλλ€. strμ΄ μλ‘μ΄ μ°Έμ‘°λ₯Ό λ§λ€μ΄ κ±°κΈ°μ "World" κ°μ μ μ₯νλ κ²μ΄λ€. μ¦, Stringμ μλ‘μ΄ λ¬Έμμ΄μ ν λΉν μ μλ€.
String classκ° finalμΈ μ΄μ , Stringμ λΆλ³μ± (Immutable)
Javaμ finalμ λν΄ κ³΅λΆνλ©΄μ String classκ° λνμ μΈ final classλΌλ κ²μ μκ² λμκ³ , String classκ° finalμΌλ‘ μ μλ μ΄μ κ° κΆκΈνμ¬ μ°Ύμλ³΄κ² λμμ΅λλ€. Java String String str1 = new String("Hello"); // new
wildeveloperetrain.tistory.com
βοΈ abstract μ μ΄μ_ 387p
β’ μΆμ λ©μλ
: μ€κ΄νΈκ° μμΌλ©°, λ¬΄μ¨ κΈ°λ₯μ μ μν μ§ μ ν΄μ§μ§ μμ λ―Έμμ± λ©μλλ€.
abstract class Animal {
abstract void cry() {}
}
class Cat extends Animal {
void cry() {
System.out.println("μΌμΉ");
}
}
class Dog extends Animal {
void cry() {
System.out.println("μμ");
}
}
Animal animal1 = new Cat();
Animal animal2 = new Dog();
animal1.cry();
animal2.cry();
μΆμ λ©μλλ₯Ό 1κ° μ΄μ ν¬ν¨νκ³ μλ ν΄λμ€λ λ°λμ μΆμ ν΄λμ€λ‘ μ μν΄μΌνλ€. abstract μ μ΄μμ μ₯μ μ λ¬Έλ² μ€λ₯κ° λ°μνμμ μλ €μ£Όλ κ²μ΄λ€. μλ₯Ό λ€μ΄ Cat ν΄λμ€μ Dog ν΄λμ€μ cry λ©μλκ° μλ cRy λ©μλκ° μ μλμλ€κ³ κ°μ νμ. μΌλ°ν΄λμ€λ‘ μ μνμ κ²½μ° μΆλ ₯μ΄ λμ§ μμ λΏ λ³λ€λ₯Έ κ²½κ³ λ¬Έμ΄ λ¨μ§ μλλ€. νμ§λ§ abstract μ μ΄μλ₯Ό μ¬μ©νμ¬ μ½λλ₯Ό μμ±ν κ²½μ° μ΄λ κ² μ μλ λ©μλμ λ€λ₯Έ λ©μλκ° μ€νλλ€λ©΄ μ€λ₯κ° λ°μν κ²μ΄λ€.
μ€μ μ 무μμλ λ΄κ° μμ±ν μ½λλ₯Ό κ°μ§κ³ λ€λ₯Έ μ¬λμ΄ μ¬μ©νλ κ²½μ°κ° μμ κ²μ΄λ€. μ΄λ€ μ€λ₯κ° λνλμ§ μκ³ μλ±ν κ²°κ³Όκ° λμ¨λ€λ©΄ λ€λ₯Έ κ°λ°μλ μ΄λμ μ€λ₯κ° λ¬λμ§ μ°ΎμμΌν κ²μ΄λ€. νμ§λ§ abstractλ μ΄λ₯Ό μμν λͺ¨λ μμ ν΄λμ€ λ΄λΆμλ νμ cry( )λ©μλκ° μμ΄μΌνκΈ° λλ¬Έμ μ€λ₯λ₯Ό λ³΄κ³ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ κ²μ΄λ€.
'π Java > μλ°μμ μ 볡' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μ΄λ ν΄λμ€ (0) | 2025.04.29 |
---|---|
[Java] μΆμν΄λμ€μ μΈν°νμ΄μ€ (1) | 2025.04.28 |
[Java] λ©μλ μ€λ²λΌμ΄λ©κ³Ό μ€λ²λ‘λ©, super( ) λ©μλ (1) | 2025.02.02 |
[Java] μλ° μμ μ 볡_ 10μ₯ ν΄λμ€μ μμκ³Ό λ€νμ± (1) (2) | 2024.12.24 |
[Java] μλ° μμ μ 볡_ 9μ₯ μλ°μ μ΄μ 1 (1) | 2024.12.22 |