[JAVA] λ§€κ°λ³μμ ... / μΆμν΄λμ€μ μΈν°νμ΄μ€ μ°¨μ΄ μ 리
λ§€κ°λ³μμ ...
λ§€κ°λ³μμ OrderItem... orderItemsκ° μμλλ°
μ΄κ²μ μλ―Έλ κ°λ³μΈμλΌκ³ νλ€!
OrderItemμ΄λΌλ μΈμκ° 0λΆν° μ¬λ¬κ°κΉμ§ μ¬ μ μλ€λ κ²μ΄λ€.(μ¬λ¬κ°μ λ§€κ°λ³μλ₯Ό λ°μ μ μλ€λ λ»)
μλ£νμ΄ κΌ λ°°μ΄μΌ νμ μκ³ μΈμλ₯Ό μ λ¬νμ§ μκ±°λ μΈμκ° 1κ°λΌλ κ°λ₯νλ€.
λ§€κ°λ³μ μ μΈν λ κ°μ₯ λ§μ§λ§μ μ¨μΌ νλ©° μ λ¬ λ°μ κ°λ³μΈμλ λ°λ³΅λ¬Έ μ¨μ μ¬μ©κ°λ₯νλ€.
κ°λ³μΈμλ λ§€κ°λ³μ κ°μλ₯Ό λμ μΌλ‘ μ§μ ν΄μ£Όλ λ°©λ²μ΄λ€.
public static String[] strArr(String ... vargs) {
return vargs;
}
public static void main(String[] args) {
String[] sArr = strArr("A", "B", "C");
for(String str : sArr) {
System.out.print(str + " ");
}
strArr();
}
[java] κ°λ³μΈμ (variable arguments)
λ©μλμ λ§€κ°λ³μ κ°μλ₯Ό λμ μΌλ‘ μ§μ ν΄μ£Όλ λ°©λ²μ΄λ€. ‘νμ … λ³μλͺ ’ νμμΌλ‘ μ μΈν μ μκ³ , μ¬μ©λ μλ₯Ό μ°Ύμλ©΄ PrintStream Classμ printf()κ° λνμ μΈ μλΌκ³ ν μ μλ€. public PrintStrea
binux.tistory.com
https://blog.naver.com/PostView.nhn?blogId=zzang9ha&logNo=222098886642
[Java/μλ°] - κ°λ³ μΈμ(Varargs)
Java - λ§€κ°λ³μμ κ°λ³ μΈμ κ°λ³ μΈμ(Varargs)λ λ§€κ°λ³μλ₯Ό λμ μΌλ‘ λ°μ μ μλ λ°©λ²μΌλ‘, μλ° 1...
blog.naver.com
ν κ·Όλ° λ°°μ΄μ μ°λ κ²κ³Ό λ³λ° μ°¨μ΄κ° μλκ² κ°μλ° ν° μ°¨μ΄μ μ΄
"ν¨μνΈμΆμ λ§€κ°λ³μ κ°μ μλ΅κ°λ₯νκ°?" μ μλ€.
λ°°μ΄μ ν¬κΈ°κ° 0 μΈλ³μ λλ nullμ λ§€κ°λ³μλ‘ λ겨주기λΌλ ν΄μΌνμ§λ§ κ°λ³μΈμλ₯Ό μ¬μ©νλ©΄ λ§€κ°λ³μ μλ΅ν΄μΌνλ κ²½μ°μ κ°μ΄ μλ΅κ°λ₯ν.
μΆμ ν΄λμ€μ μΈν°νμ΄μ€
μΆμν΄λμ€λ μΌλ°ν΄λμ€μ ν° μ°¨μ΄λ μλλ° μμμ ν΅ν΄ μμ ν΄λμ€λ₯Ό μμ±νλλ‘νλ€.
κ·Έλμ λ―Έμμ± μ€κ³λλΌκ³ λ νλ€.
μμμ μν ν΄λμ€μ΄κΈ°μ λ°λ‘ κ°μ²΄λ₯Ό μμ±ν νμλ μλ€.
class μμ abstract μμ½μ΄ μ¬μ©νμ¬ μμμ ν΅ν΄ ꡬνν΄μΌνλ€λ κ²λ§ μλ €μ£Όκ³ μ μΈλΆλ§ μμ±νλ€.
π μΆμ ν΄λμ€ κ·μΉ
- μΆμ ν΄λμ€λ ν€μλ abstractλ₯Ό λΆμ¬ νννλ€.
μΆμ λ©μλλ₯Ό ν¬ν¨νμ§ μμ ν΄λμ€μμλ abstractλ₯Ό λΆμ¬μ μΆμ ν΄λμ€λ‘ μ§μ ν μλ μλ€. - ν΄λμ€λ₯Ό abstractλ‘ μ§μ νλ©΄ newλ₯Ό ν΅ν΄ κ°μ²΄λ₯Ό μ§μ μμ±ν μ μλ€.
- λ©μλμ abstractλ₯Ό μ¬μ©ν κ²½μ° interfaceμ λ©μλμ κ°μ΄ ꡬν λΆλΆμ μλ€.
- abstractλ‘ μ μΈν λ©μλλ₯Ό μμ ν΄λμ€μμ λ°λμ ꡬνν΄μΌ νλ€. (μ€λ²λΌμ΄λ©)
μ΄λ μμ ν΄λμ€μμ μΆμ λ©μλλ₯Ό λ°λμ ꡬννλλ‘ κ°μ νλ κ²μ΄λ€.
μΈν°νμ΄μ€λ κΈ°λ³Έ μ€κ³λλΌκ³ ν μ μλ€. μλ μΆμν΄λμ€μ²λΌ λ€λ₯Έ ν΄λμ€ μμ±νλλ° λμμ μ£Όλ λͺ©μ μΌλ‘
μ¬μ©νκ³ λ€μ€μμμ΄ κ°λ₯νλ€. (μΈν°νμ΄μ€λ μΈν°νμ΄μ€λ‘λΆν°λ§ μμμ΄ κ°λ₯νκ³ , ν΄λμ€μ λ¬λ¦¬ λ€μ€μμκ°λ₯)
μΈν°νμ΄μ€λ μΌμ’ μ μΆμν΄λμ€μΈλ°, μΆμν΄λμ€λ³΄λ€ μΆμν μ λκ° λλ€.
μΆμν΄λμ€μ²λΌ μΌλ°λ³μλ λ©μλλ₯Ό ꡬμ±μμΌλ‘ κ°μ§ μ μλ€.
μΈν°νμ΄μ€λͺ μ λλΆλΆ '~μ ν μ μλ'μ μλ―ΈμΈ ableλ‘ λλλ κ²λ€μ΄ λ§λ€.
κ·Έλμ λλΌλ κ°μΆ°μ§ μΆμν΄λμ€λ λ―Έμμ± μ€κ³λμ΄κ³ , ꡬνλκ² μ무κ²λ μλκ² μΈν°νμ΄μ€μ΄λ€.
π μΈν°νμ΄μ€ κ·μΉ
- μΆμ ν΄λμ€μ²λΌ λΆμμ ν κ²μ΄κΈ° λλ¬Έμ κ·Έ μ체λ§μΌλ‘ μ¬μ©λκΈ° 보λ€,
λ€λ₯Έ ν΄λμ€λ₯Ό μμ±νλλ° λμμ μ€ λͺ©μ μΌλ‘ μμ±λλ€. - μΌλ° λ©μλ λλ λ©€λ² λ³μλ₯Ό ꡬμ±μμΌλ‘ κ°μ§ μ μλ€.
- λͺ¨λ λ©€λ² λ³μλ public static finalμ΄μ΄ν νλ©°, μ΄λ₯Ό μλ΅ν μ μλ€.
- λͺ¨λ λ©μλλ public abtractμ΄μ΄μΌ νλ©°, μ΄λ₯Ό μλ΅ν μ μλ€.
(λ¨, JDK1.8λΆν° static λ©μλμ default λ©μλλ₯Ό μ¬μ©ν μ μλ€.)
κ·Έλ λ€λ©΄ μΈν°νμ΄μ€μ μΆμν΄λμ€μ μ©λλ₯Ό λ¬λ¦¬ λλ μ΄μ κ° λ¬΄μμΌκΉ?
μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ€λ©΄ λͺ¨λ ν΄λμ€μμ μ€λ²λΌμ΄λ© ν΄μΌνλ€λ λΆνΈν¨μ΄ μλ€. κ·Έλμ 곡ν΅λ κΈ°λ₯μ΄
μλ€λ©΄ μΆμν΄λμ€λ₯Ό μ΄μ©ν΄ μΌλ°λ©μλλ₯Ό μμ±νμ¬ μμ ν΄λμ€μμ μ¬μ©ν μ μλλ‘ νλ©΄λλ€.
κ·Έλ¦¬κ³ μλ°λ νλμ ν΄λμ€λ§ μμμ΄ κ°λ₯νκΈ°μ λ€λ₯Έ μΆμν΄λμ€λ₯Ό μμνλλ° κ³΅ν΅λ κΈ°λ₯μ΄ νμνλ€λ©΄
μΈν°νμ΄μ€λ₯Ό μ°λ©΄λλ€.
곡ν΅λ κΈ°λ₯ : μΆμν΄λμ€
μΈν°νμ΄μ€: κ³ μ ν μ λ€μ΄ ν μ μλ κΈ°λ₯λ€
κ³ μ ν μ λ€: μΌλ° ν΄λμ€
π μ¬μ©μΌμ΄μ€ μ 리 (by new_wisdomλ λΈλ‘κ·Έ )
μΆμ ν΄λμ€
- κ΄λ ¨μ±μ΄ λμ ν΄λμ€ κ°μ μ½λλ₯Ό 곡μ νκ³ μΆμ κ²½μ°
- μΆμ ν΄λμ€λ₯Ό μμ λ°μ ν΄λμ€λ€μ΄ 곡ν΅μΌλ‘ κ°μ§λ λ©μλμ νλκ° λ§κ±°λ,
publicμ΄μΈμ μ κ·Όμ(protected, private) μ μΈμ΄ νμν κ²½μ° - non-static, non-final νλ μ μΈμ΄ νμν κ²½μ° (κ° μΈμ€ν΄μ€μμ μν λ³κ²½μ μν λ©μλκ° νμν κ²½μ°)
μΈν°νμ΄μ€
- μλ‘ κ΄λ ¨μ±μ΄ μλ ν΄λμ€λ€μ΄ μΈν°νμ΄μ€λ₯Ό ꡬννκ² λλ κ²½μ°.
ex) Comparable, Cloneable μΈν°νμ΄μ€λ μ¬λ¬ ν΄λμ€λ€μμ ꡬνλλλ°, ꡬνν΄λμ€λ€ κ°μ κ΄λ ¨μ±μ΄ μλ€. - νΉμ λ°μ΄ν° νμ μ νλμ λͺ μνκ³ μΆμλ°, μ΄λμ κ·Έ νλμ΄ κ΅¬νλλμ§λ μ κ²½μ°μ§ μλ κ²½μ°.
- λ€μ€μμμ νμ©νκ³ μΆμ κ²½μ°
π λ무 μ μ 리λ κΈ
https://myjamong.tistory.com/150
[JAVA] μΆμν΄λμ€ VS μΈν°νμ΄μ€ μ μ¬μ©ν κΉ? μ°¨μ΄μ , μμ λ‘ νμΈ :: λ§μ΄μλͺ½
μΆμν΄λμ€ μΈν°νμ΄μ€ μ... μ¬μ©ν κΉ? μ°λ¦¬λ μΆμν΄λμ€μ μΈν°νμ΄μ€μ λν΄μ μκ³ μλκ³ λκ° λ¬Όμ΄λ³Έλ€λ©΄ μκ³ μλ€κ³ λλ΅μ νκ³ μμ΅λλ€. κ·Έλ°λ° μ΄λ‘ μ μΈ λ΄μ© λ§κ³ μ μ "μ μ¬μ©ν
myjamong.tistory.com
[Java] μΆμ ν΄λμ€μ μΈν°νμ΄μ€μ μ°¨μ΄
[Java] λ΄κ° μ΄ν΄ν μΆμ ν΄λμ€μ μΈν°νμ΄μ€μ μ°¨μ΄ μ 리 π
velog.io