π λͺ©μ°¨ λ§ν¬
- μ μ ν©ν 리 λ©μλ
- (μΆκ° μμ )
λ©°μΉ κ°, νλ‘μ νΈλ₯Ό ꡬν νλ©΄μ 곡λΆν κ²λ€μ μ 리ν΄λ³΄λ € νλ€.
ν리μ½μ€λ₯Ό μ§ννλ©΄μ, λ§κ΅¬μ‘μ΄λ‘ ν΄λμ€μ μμ±μλ₯Ό μ¬μ©νμ¬ κ°μ²΄λ₯Ό μμ± νμλ€.
κ·Έλμ, μ΄λ²μ 보μν΄μΌ ν μ μ€ νλλΌκ³ μκ°νκ³ , 곡λΆλ₯Ό ν΅ν΄ μμ±μ λμ μ μ ν©ν 리 λ©μλλ₯Ό μ μ©νλ κ²μ΄ λͺ©νμ΄λ€.
μ μ ν©ν 리 λ©μλλ?
κ°μ²΄μ μμ±μ λ΄λΉνλ ν΄λμ€ λ©μλλ‘μ, ν΄λμ€μ μ μ λ©μλλ₯Ό μ μνμ¬ μμ±μ λμ λ©μλλ₯Ό ν΅ν΄ κ°μ²΄λ₯Ό μμ±νλ λ°©μμ΄λ€.
ꡬ체μ μΌλ‘ μ€λͺ νλ©΄, μμ±μ → λ€λ₯Έ ν΄λμ€μμ new λ°©μμ ν΅ν΄ μμ±νλ κ²μ΄ μλλΌ, κ°μ ν΄λμ€ λ΄μμ ν΄λΉ ν΄λμ€ λͺ μ μ¬μ©νμ¬ λ©μλλ₯Ό λ§λ€μ΄ μ§μ κ°μ²΄λ₯Ό μμ±νλ λ°©μμ΄λ€.
μλμ μμ μ½λλ₯Ό 보며 μ΄ν΄ ν΄λ³΄μ.
Car ν΄λμ€λ₯Ό ν΅ν΄ new λ°©μκ³Ό μ μ ν©ν 리 λ©μλ λ°©μμ μ°¨μ΄λ₯Ό λΉκ΅ν΄ λ³Ό κ² μ΄λ€.
public class Car {
private final String name;
private final int oil;
public Car(String name, int oil) {
this.name = name;
this.oil = oil;
}
public Car(String name){
this.name = name;
this.oil = 0;
}
}
public static void main(String[] args) {
Car fullOilCar = new Car("fullOilCar", 10);
Car noOilCar = new Car("noOilCar");
}
μμ μ½λλ new λ°©μμ ν΅ν΄, main λ©μλ μμμ κ°μ²΄κ° μμ±λλ μμ μ½λμ΄λ€.
new λ°©μμΌλ‘ κ°μ²΄λ₯Ό μμ±νλ©΄, κ° κ°μ²΄κ° μ΄λ€ μμ±μλ₯Ό ν΅ν΄ λ§λ€μ΄ μ§λμ§ μ΄ν΄νκΈ° μ΄λ ΅λ€.
public class Car {
private final String name;
private final int oil;
public static Car createCar(String name, int oil) {
return new Car(name, oil);
}
public static Car createNoOilCar(String name) {
return new Car(name, 0);
}
private Car(String name, int oil) {
this.name = name;
this.oil = oil;
}
}
public static void main(String[] args) {
Car fullOilCar = createCar("car1", 10);
Car noOilCar = createNoOilCar("car2");
}
μ΄λ²μ μ μ ν©ν 리 λ©μλ λ°©μμ΄λ€.
createCar, createNoOilCar λ©μλ λ λ€ ν΄λΉ ν΄λμ€ μ΄λ¦(Car)μ ν΅ν΄ Car κ°μ²΄λ₯Ό λ°ννλ κ²μ λ³Ό μ μλ€.
λν, main λ©μλλ₯Ό μ΄ν΄λ³΄λ©΄, κ° λ©μλκ° μ΄λ€ μμ±μλ₯Ό ν΅ν΄ κ°μ²΄λ₯Ό μμ± νλμ§ μ΄ν΄νκΈ° μ½λ€.
μ μ ν©ν 리 λ©μλ νΉμ§
- μ΄λ¦μ κ°μ§ μ μλ€.
- νΈμΆν λ λ§λ€ μλ‘μ΄ κ°μ²΄λ₯Ό μμ±ν νμ μλ€. (μ€λ³΅ μ κ±° ν¨κ³Ό)
- νμ μλ£ν κ°μ²΄λ₯Ό λ°νν μ μλ€.
- μ λ ₯ λ§€κ°λ³μμ λ°λΌ λ§€λ² λ€λ₯Έ ν΄λμ€μ κ°μ²΄λ₯Ό λ°νν μ μλ€.
μ μ ν©ν 리 λ©μλ λͺ λͺ λ°©μ
from
νλμ λ§€κ°λ³μλ₯Ό λ°μ ν΄λΉ νμ μ μΈμ€ν΄μ€λ₯Ό λ°ννλ ν λ³ν λ©μλ
Date d = Date.from(instant);
of
μ¬λ¬ λ§€κ°λ³μλ₯Ό λ°μ μ ν©ν νμ μ μΈμ€ν΄μ€λ₯Ό λ°ννλ μ§κ³ λ©μλ
Set<Rank> faceCards = EnumSet.of(JACK, QUEEN, KING);
valueOf
from, of μ λ μμΈν λ²μ
BigInteger prime = BigInteger.valueOf(Integer.MAX_VALUE);
instance
getInstance
λ§€κ°λ³μλ‘ λͺ μν μΈμ€ν΄μ€λ₯Ό λ°ννμ§λ§, κ°μ μΈμ€ν΄μ€μμ 보μ₯νμ§λ μλλ€.
StackWalker luke = StackWalker.getInstance(options);
create
newInstance
instanceμ getInstanceμ λΉμ·νμ§λ§, λ§€λ² μλ‘μ΄ μΈμ€ν΄μ€λ₯Ό μμ±ν΄ λ°νν¨μ 보μ₯νλ€.
Object newArray = Array.newInstance(classObject, arrayLen);
[ μμ½ ]
μμ±μλ μμνκ² κ°μ²΄κ° νμν λ©€λ² λ³μλ§ νλΌλ―Έν°λ‘ λ°μ κ°μ²΄λ₯Ό μμ±νλλ° μ§μ€νλλ‘ λ§λ€μ.
λ°μ΄ν° νμ μ λ°λ₯Έ κ° κ²μ¦ λ± λ°μ΄ν°μ λν μ μ²λ¦¬ μμ μ λͺ¨λ μ μ ν©ν 리 λ©μλμκ² μμνμ.
μ΄λ¦μ κ°κ³ μλ λ©μλλ₯Ό ν΅ν΄ κ°μ²΄λ₯Ό μμ±νμ.
[ λνΌλ°μ€ ]
- μ μ ν©ν°λ¦¬ λ©μλ(Static Factory method)
- μμ±μ λμ μ μ ν©ν°λ¦¬ λ©μλλ₯Ό κ³ λ €νλΌ
'μ°μνν ν¬μ½μ€ 5κΈ° λ°±μλ ν리μ½μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ°ν μ½ 5κΈ° ν리μ½μ€] MVC ν¨ν΄ (0) | 2022.11.30 |
---|---|
[μ°ν μ½ 5κΈ° ν리μ½μ€] μ«μ μΌκ΅¬ with μλ° κΈ°μ΄ κ°μ μ 리 (0) | 2022.11.27 |
[μ°ν μ½ 5κΈ° ν리μ½μ€] νΌλλ°± μ 리 (0) | 2022.11.25 |
[μ°ν μ½ 5κΈ° ν리μ½μ€] μ°Έμ¬ νκΈ° (0) | 2022.11.24 |
[μ°ν μ½ 5κΈ° ν리μ½μ€] 4μ£Όμ°¨: λ€λ¦¬ 건λκΈ° (0) | 2022.11.24 |