λͺ©λ‘λΆλ₯ μ 체보기 (208)
π»
κ°μ²΄ νμ νμΈ(instanceof) κ°μ νμ λ³νμ μμ νμ μ΄ λΆλͺ¨ νμ μΌλ‘ λ³νλμ΄ μλ μνμμλ§ κ°λ₯νκΈ° λλ¬Έμ λ€μκ³Ό κ°μ΄ λΆλͺ¨ νμ μ λ³μκ° λΆλͺ¨ κ°μ²΄λ₯Ό μ°Έμ‘°ν κ²½μ° μμ νμ μΌλ‘ λ³νν μ μλ€. Parent parent = new Parent(); Child child = (Child) Parent; //κ°μ νμ λ³νμ ν μ μλ€. Parent parent = new Child(); //upCasting Child child = (Child) Parent; //κ°μ νμ λ³νμ ν μ μλ€. downCasting κ·Έλ λ€λ©΄ λΆλͺ¨ λ³μκ° μ°Έμ‘°νλ κ°μ²΄κ° λΆλͺ¨ κ°μ²΄μΈμ§ μμ κ°μ²΄μΈμ§ μ΄λ»κ² νμΈν κΉ? μ΄λ€ κ°μ²΄κ° μ΄λ€ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§ νμΈνλ €λ©΄ instanceof μ°μ°μλ₯Ό μ¬μ©ν μ..
ν΄λμ€λ₯Ό νλΌλ―Έν°λ‘ μ¬μ© -> μμ‘΄κ΄κ³ κ°μ²΄λ₯Ό λ©€λ²κ°μ²΄(νλ)λ‘ μ¬μ© => μ°κ΄κ΄κ³ κ΄κ³(Relationship) 1. μ μ - ꡬμ±μμλ€κ°μ μλ―Έ μλ μ°κ΄μ±μ νν - μΌλ°μ μΌλ‘ ν΄λμ€λ€κ°μ κ΄κ³ νν μ μ¬μ©λλ€. 2. μ’ λ₯ μΌλ°νκ΄κ³(Generalization Relationship) μ€μ²΄ν, μ€νν κ΄κ³(Realization Relationship) μμ‘΄κ΄κ³(Dependency Relationship) μ°κ΄κ΄κ³(Association Relationship) μ§ν©μ°κ΄(Aggregation Relationship) 볡ν©μ°κ΄(Composition Relationship) -> μ§ν©μ°κ΄κ΄κ³μ 볡ν©μ°κ΄κ΄κ³λ μ€κ³μ λ°λΌ λ€λ₯΄λ€. Dependency(μμ‘΄κ΄κ³) μλͺ μ£ΌκΈ°κ° κ°λ€. ν΄λμ€ μμ λ©μλμ 맀κ°λ³..
μμ 1) RAM ꡬ쑰 heap stack new AA()... 0x100 a 0x100 b 0x100 c 0x100 d 0x100 new AA()... 0x200 x 0x200 y 0x200 b, c, d μλ‘ ν λΉ λ°μ§ μκ³ μ£Όμκ°μ μ°Έμ‘°νλ€. newλΌλ ν€μλλ‘ κ°μ²΄λ₯Ό λ°μνλ©΄ μλ‘μ΄ κ³΅κ°μ ν λΉ λ°λλ€. b.func() μ΄ μ€νλλ μ΄μ λ a=null; λ‘ ν΄μ€λ bλ μ£Όμκ°μ μ°Έμ‘°νκΈ°λλ¬Έμ΄λ€. RAM heap stack a null b null c null d null new AA()... 0x200 x 0x200 y 0x200 λ©λͺ¨λ¦¬λ constant, heap, stack μμμ΄ μ‘΄μ¬. constanct : static. μ’ λ£κΉμ§ μ΄μμλ€. stack : λΈλλ¨μλ‘ μ‘΄μ¬νλ€. heap : n..
μΈν°νμ΄μ€(interface) : μΈν°νμ΄μ€λ? μΌμ’ μ μΆμν΄λμ€μ΄λ€. μΈν°νμ΄μ€λ μΆμν΄λμ€μ²λΌ μΆμλ©μλλ₯Ό κ°μ§λ§ μΆμν΄λμ€λ³΄λ€ μΆμν μ λκ° λμμ μΆμν΄λμ€μ λ¬λ¦¬ λͺΈν΅μ κ°μΆ μΌλ° λ©μλ λλ λ©€λ²λ³μλ₯Ό ꡬμ±μμΌλ‘ κ°μ§ μ μλ€. μ€μ§ μΆμλ©μλμ μμλ§μ λ©€λ²λ‘ κ°μ§ μ μμΌλ©°, κ·Έ μΈμ λ€λ₯Έ μ΄λ ν μμλ νμ©νμ§ μλλ€. μΆμν΄λμ€λ₯Ό λΆλΆμ μΌλ‘λ§ μμ±λ 'λ―Έμμ± μ€κ³λ' λΌκ³ νλ€λ©΄, μΈν°νμ΄μ€λ ꡬνλ κ²μ μ무 κ²λ μκ³ λ°κ·Έλ¦Όλ§ κ·Έλ €μ Έ μλ 'κΈ°λ³Έ μ€κ³λ' λΌκ³ ν μ μλ€. - μλ°μμ μΈν°νμ΄μ€λ κ°μ²΄μ μ¬μ© λ°©λ²μ μ μν νμ μ΄λ€. - κ°μ²΄μ κ΅νμ±μ λμ¬μ£ΌκΈ° λλ¬Έμ λ€νμ±μ ꡬννλ μ€μν μν μ νλ€. - (ν΄λμ€λ νλ, μμ±μ, λ©μλλ₯Ό κ΅¬μ± λ©€λ²λ‘ κ°μ§λλ°) μΈν°νμ΄μ€λ..
abstract μ΄ μ¬μ©λ μ μλ κ³³ - ν΄λμ€, λ©μλ κ°μ²΄λ₯Ό μ§μ μμ±ν μ μλ ν΄λμ€λ₯Ό μ€μ²΄ ν΄λμ€λΌκ³ νλ€λ©΄ μ΄ ν΄λμ€λ€μ 곡ν΅μ μΈ νΉμ±μ μΆμΆν΄μ μ μΈν ν΄λμ€λ₯Ό μΆμ ν΄λμ€λΌκ³ νλ€. μΆμν΄λμ€μ μ€μ²΄ ν΄λμ€λ μμμ κ΄κ³λ₯Ό κ°μ§κ³ μλ€. μΆμν΄λμ€κ° λΆλͺ¨μ΄κ³ μ€μ²΄ ν΄λμ€κ° μμμΌλ‘ ꡬνλμ΄ μ€μ²΄ ν΄λμ€λ μΆμ ν΄λμ€μ λͺ¨λ νΉμ±μ λ¬Όλ €λ°κ³ , μΆκ°μ μΈ νΉμ±μ κ°μ§ μ μλ€. μ¬κΈ°μ νΉμ±μ΄λ νλμ λ©μλλ₯Ό λ§νλ€. μΆμ ν΄λμ€λ₯Ό λ§λλ μ΄μ ? 1) μ€μ²΄ ν΄λμ€λ€μ 곡ν΅λ νλμ λ©μλμ μ΄λ¦μ ν΅μΌν λͺ©μ 2) μ€μ²΄ ν΄λμ€λ₯Ό μμ±ν λ μκ°μ μ μ½ λΆλͺ¨ν΄λμ€μμ μ μλ§ νκ³ κ΅¬ννμ§ μλλ€. μμν΄λμ€μμ ν¨μμ¬μ μ ν΄μ€λ€.(λ°κ°μ ) μΆμν¨μλ₯Ό νλλΌλ κ°μ§κ³ μμΌλ©΄ μΆμν΄λμ€λ‘ νμν΄μΌν..
ν΄λμ€μ νΉμ§ 3κ°μ§ β μλν -> public λ³΄λ€ privateλ₯Ό μ¬μ©νλ€. β‘ μ€λ³΅μ± -> μ€λ³΅ (ν¨μμ€λ³΅/μμ±μμ€λ³΅) β’ μμμ± -> λΆλͺ¨ν΄λμ€μ λ©€λ²λ₯Ό μμμκ² λ¬Όλ €μ€λ€. μλ°μμ λ§λ€μ΄μ§ λͺ¨λ ν΄λμ€λ Object ν΄λμ€λ₯Ό μμλ°λλ€. μλ°λ λ€μ€ μμμ νμ©νμ§ μλλ€. μ¦, μ¬λ¬ κ°μ λΆλͺ¨ν΄λμ€λ₯Ό μμν μ μμΌλ―λ‘ extends λ€μλ νλμ λΆλͺ¨ν΄λμ€λ§ μμΌνλ€. μμ : μμμ΄λ? κΈ°μ‘΄μ ν΄λμ€λ₯Ό μ¬μ¬μ©νμ¬ μλ‘μ΄ ν΄λμ€λ₯Ό μμ±νλ κ²μ΄λ€. μμμ ν΅ν΄μ ν΄λμ€λ₯Ό μμ±νλ©΄ μ μ μμ μ½λλ‘ μλ‘μ΄ ν΄λμ€λ₯Ό μμ±ν μ μκ³ μ½λλ₯Ό 곡ν΅μ μΌλ‘ κ΄λ¦¬ν μ μκΈ° λλ¬Έμ μ½λμ μΆκ° λ° λ³κ²½μ΄ μ©μ΄νλ€. μ΄λ¬ν νΉμ§μ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ μ½λμ μ€λ³΅μ μ κ±°νμ¬ νλ‘κ·Έλ¨μ μμ°μ±κ³Ό μ μ§λ³΄..
λ¬Έμ μ€λͺ λ€νΈ κ²μ μΉ΄μΉ΄μ€ν‘μ λ¬ λ€ λ²μ§Έ λ³! μ¬μ¬ν λ? μΉ΄μΉ΄μ€ν‘ κ²μλ³~ μΉ΄μΉ΄μ€ν‘ κ²μλ³μ νλ°κΈ° μ κ· μλΉμ€λ‘ λ€νΈ κ²μμ μΆμνκΈ°λ‘ νλ€. λ€νΈ κ²μμ λ€νΈνμ λ€νΈλ₯Ό μΈ μ°¨λ‘ λμ Έ κ·Έ μ μμ ν©κ³λ‘ μ€λ ₯μ 겨루λ κ²μμΌλ‘, λͺ¨λκ° κ°λ¨ν μ¦κΈΈ μ μλ€. κ° μ μ¬ν 무μ§λ μ½λ© μ€λ ₯μ μΈμ λ°μ κ²μμ ν΅μ¬ λΆλΆμΈ μ μ κ³μ° λ‘μ§μ λ§‘κ² λμλ€. λ€νΈ κ²μμ μ μ κ³μ° λ‘μ§μ μλμ κ°λ€. λ€νΈ κ²μμ μ΄ 3λ²μ κΈ°νλ‘ κ΅¬μ±λλ€. κ° κΈ°νλ§λ€ μ»μ μ μλ μ μλ 0μ μμ 10μ κΉμ§μ΄λ€. μ μμ ν¨κ» Single(S), Double(D), Triple(T) μμμ΄ μ‘΄μ¬νκ³ κ° μμ λΉμ²¨ μ μ μμμ 1μ κ³±, 2μ κ³±, 3μ κ³± (μ μ1 , μ μ2 , μ μ3 )μΌλ‘ κ³μ°λλ€. μ΅μ μΌλ‘ μ€νμ(*) ,..
μμ±μ μ€λ³΅ : 맀κ°λ³μλ₯Ό λ¬λ¦¬νλ μμ±μλ₯Ό μ¬λ¬ κ° μ μΈνλ κ² λ§€κ°λ³μμ νμ κ³Ό κ°μ κ·Έλ¦¬κ³ μ μΈλ μμκ° λκ°μ κ²½μ° λ§€κ°λ³μ μ΄λ¦λ§ λ°κΎΌλ κ²μ μμ±μ μ€λ²λ‘λ©μ΄ μλλ€. λ€λ₯Έ μμ±μ νΈμΆ(this()) : μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λλ this() λ₯Ό μ¬μ©νλ€. μμ±μ μ€λ²λ‘λ©μ΄ λ§μμ§ κ²½μ° μμ±μ κ°μ μ€λ³΅λ μ½λκ° λ°μν μ μλ€. λ§€κ° λ³μμ μλ§ λ¬λ¦¬νκ³ νλ μ΄κΈ°ν λ΄μ©μ΄ λΉμ·ν μμ±μμμ μ΄λ¬ν νμμ λ³Ό μ μλ€. μ΄ κ²½μ°μλ νλ μ΄κΈ°ν λ΄μ©μ ν μμ±μμλ§ μ§μ€μ μΌλ‘ μμ±νκ³ λλ¨Έμ§ μμ±μλ μ΄κΈ°ν λ΄μ©μ κ°μ§κ³ μλ μμ±μλ₯Ό νΈμΆνλ λ°©λ²μΌλ‘ κ°μ ν μ μλ€. μ€λ³΅ μ½λλ₯Ό μ΅μννλ€. 쑰건 1) λ°λμ μμ±μμ 첫 μ€μμλ§ νμ©λλ€. 2) μμ±μμ μ΄λ¦μΌλ‘ ν΄λμ€μ΄λ¦ λμ ..