π» JAVA/μ 리μ 리μ 리
κ°μ²΄, μΈμ€ν΄μ€μ κ°λ
μ μ΄ν΄νκΈ° μν΄ μ 리νλ λ΄μ©μ
λλ€. ν΄λμ€ (Class) κ°λ
κ°μ²΄λ₯Ό λ§λλ μ€κ³λ λλ ν /* ν΄λμ€ */ public class Car { ... } κ°μ²΄ (Object) κ°λ
μννΈμ¨μ΄ μΈκ³μ ꡬνν λμ ν΄λμ€μ μ μΈλ λͺ¨μ κ·Έλλ‘ μμ±λ μ€μ²΄ μ€κ³λ(ν΄λμ€)μμ λ§λ€μ΄λΈ μ ν(?) νΉμ§ λͺ¨λ λ νΌλ°μ€ νμ
μ κ°μ²΄λΌκ³ λΆλ₯΄κΈ°λ νλ€. κ°μ²΄λ λͺ¨λ μΈμ€ν΄μ€λ₯Ό ν¬κ΄νλ μλ―Έλ₯Ό κ°λλ€. OOP κ΄μ μμ ν΄λμ€ νμ
μΌλ‘ μ μΈλμμ λ κ°μ²΄λΌκ³ λΆλ₯Έλ€. public class Main { public static void main(String[] args) { Car santafe, tucson;// κ°μ²΄ } } μΈμ€ν΄μ€ (Instance) κ°λ
μ€κ³λλ₯Ό λ°νμΌλ‘ μννΈμ¨μ΄ μΈκ³..
π» JAVA/μ 리μ 리μ 리
λ΄κ° λ무 μλ°μ κΈ°μ΄μ λν΄μ 곡λΆλ₯Ό μ λλ‘ μνλ€κ³ μκ°ν΄μ λ€μ μ 리νκ² λμλ€.. Call By Value ? Call By Reference ? λ©μλμμ μΈμκ°μ λ°μ λ, κ°μ μν νΈμΆμΈμ§, μ°Έμ‘°μ μν νΈμΆμΈμ§ κ²°λ‘ λΆν° λ§νμλ©΄ μλ°λ Call By Value λ°©μμ΄λ€. public class Test{ static void changeString(String s){ s = new String("new"); } public static void main(String[] args){ String a = "old"; System.out.println(a); changeString(a); System.out.println(a); // old? new? λκ° μΆλ ₯λ κΉ } } μ€νκ²°κ³Ό old ol..
π» JAVA/μ 리μ 리μ 리
νμ΅ ν λ΄μ©λ€ μλ° μμμ νΉμ§ super ν€μλ λ©μλ μ€λ²λΌμ΄λ© λ€μ΄λλ―Ή λ©μλ λμ€ν¨μΉ (Dynamic Method Dispatch) μΆμ ν΄λμ€ final ν€μλ Object ν΄λμ€ μλ° μμμ νΉμ§ μμμ λ§€μ° μΉλͺ
μ μΈ μ€ν΄ : "μμμ μ½λμ μ¬νμ©μ μν λ¬Έλ²μ
λλ€." (X) "μ°κ΄λ μΌλ ¨μ ν΄λμ€λ€μ λν΄ κ³΅ν΅μ μΈ κ·μ½μ μ μν μ μμ΅λλ€." (O) μμμ κ°μ₯ κΈ°λ³Έμ μΈ νΉμ± λΆλͺ¨ν΄λμ€μ νλ, λ©μλλ§ μμλλ©°, μμ±μμ μ΄κΈ°ν λΈλ‘μ μμλμ§ μλλ€. λΆλͺ¨ ν΄λμ€μ private, defaultλ‘ μ€μ λ λ©€λ²λ μμ ν΄λμ€μμ μμ λ°μ§λ§ μ κ·Όν μλ μλ€. Animal ν΄λμ€ public class Animal { String name; String bark; public void..
π» JAVA/μ 리μ 리μ 리
int νμ λ²μλ μ½ -21μ΅λΆν° ~ 21μ΅ κΉμ§ μ΄λ€. λ§μ½μ μλμ κ²½μ°μ νκ· μ ꡬνλ©΄ μ΄λ€ κ°μ΄ λμ¬κΉ? (쑰건, num1κ³Ό num2λ κ° κ° intνμ μ΅λκ°μ λκΈ°μ§ μλλ€.) int num1 = 2_100_000_000; int num2 = 2_100_000_000; int avg = (num1 + num2) / 2; System.out.println("νκ· κ° : " + avg); μ€ν κ²°κ³Ό -47,483,648// μ°λ κΈ° κ°μ΄ λμ€κ² λλ€.(μ€λ²νλ‘μ°) κΈ°λ νλ κ°μ 20μ΅μ΄μ§λ§, 21μ΅μ λμ΄κ°λ©΄μ μ€λ²νλ‘μ°κ° λ°μν΄μ -147.. κ°μ΄ λμ€κ² λλ κ²μ΄λ€. κ·Έλ λ€λ©΄, μ΄λ₯Ό λ°©μ§ν νκ· κ΅¬νλ λ°©λ²μ ? int num1 = 2_100_000_000; int num2 = 2_100_0..
π» JAVA/μ 리μ 리μ 리
νμ΅ν κ² ν΄λμ€ μ μνλ λ°©λ² κ°μ²΄ λ§λλ λ°©λ² (new ν€μλ μ΄ν΄νκΈ°) λ©μλ μ μνλ λ°©λ² μμ±μ μ μνλ λ°©λ² this ν€μλ μ΄ν΄νκΈ° ν΄λμ€μ κ°λ
λ¨Όμ ν΄λμ€μ κ°λ
μ λν΄μ μ§κ³ λμ΄κ°μΌ ν κ² κ°μμ, 곡λΆν΄ 보μλ€. ν΄λμ€λ κ°μ²΄λ₯Ό μ μνλ ν λλ μ€κ³λμ κ°μ μλ―Έλ‘ μ¬μ©λ©λλ€. μλ°μμλ μ΄λ¬ν μ€κ³λμΈ ν΄λμ€λ₯Ό κ°μ§κ³ , μ¬λ¬ κ°μ²΄λ₯Ό μμ±νμ¬ μ¬μ©νκ² λ©λλ€. ν΄λμ€λ κ°μ²΄μ μνλ₯Ό λνλ΄λ νλμ κ°μ²΄μ νλμ λνλ΄λ λ©μλλ‘ κ΅¬μ±μ΄ λ©λλ€. κ°μ²΄(Object) μ¬μ μ μλ―Έ : 물건 λλ λμ κ°μ²΄μ μν(state)μ νλ(behavior)μ ꡬ체ννλ ννμ νλ‘κ·Έλλ°μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ΄λΌκ³ νλ€. μλ₯Ό λ€μ΄μ, "λλ κ³ΌμΌμ₯μμκ² λ κ°μ μ¬κ³Όλ₯Ό ꡬ맀νλ€"λΌλ λ¬Έμ₯μ..
π» JAVA/μ 리μ 리μ 리
λ§€λ² κ°μ²΄μ λν΄μ μ΄ν΄λ₯Ό νλ€κ³ μκ°νμ§λ§, λ§μ μ¬μ©μ ν΄λ³΄λ©΄ μ΄κ² μ μ΄λ κ² κ°μ΄ μ°νμ§? λΌλ κ²½νμ΄ λ§μλ€.. λ€μ νλ² μ λλ‘ μ 리ν΄λ³΄λλ‘ νκ² μ΄λ€.. λ΄κ° μ΄ν΄νκΈ° μ΄λ €μ΄ μ // 1λ² κ³Όμ CopyTest c1 = new CopyTest(); People test = new People(10, "a"); c1.man = test; // 2λ² κ³Όμ People peo2 = new People(20, "b"); test = peo2; // μλλΌλ©΄ GCμ μν΄ new People(100,"100")μ΄ μ 리 λλλ°, c1.manμ΄ μ‘κ³ μμ΄μ μμ§ λμμ΄ μλκ² λλ€. // μΆλ ₯ System.out.println(c1.man.age); // 10 (κΈ°μ‘΄ testμ μ£Όμκ°μ μ°Έμ‘°νκ³ μλ€.) Sy..