Programming/Java, Kotlin (12) μΈλ€μΌν 리μ€νΈν μλ°[Java] μΈν°νμ΄μ€[Interface] μ¬μ©κ³Ό μ΄μ βΆ μΈν°νμ΄μ€(Interface) λ? μλ°μμ μ 곡νλ μΈν°νμ΄μ€λ, μΆμ ν΄λμ€μ λ§μ°¬κ°μ§λ‘ μΆμλ νμ λ§λ€μ΄ κ°λ°μ νΌμ μ΄ μκ²λ λμμ£Όλ μν μ νλ κ°μ²΄μ΄λ€. νμ μ νλ κ°λ°μλ€λΌλ¦¬μ μνν μμ¬μν΅μ μν΄μ μμ±λ κ°λ μΌλ‘ μΈν°νμ΄μ€λΌλ μ΄λ¦μ κ°μ§λ κ² κ°λ€. βΆ μΆμ ν΄λμ€μ 무μμ΄ λ€λ₯ΌκΉ? μΆμ ν΄λμ€λ νΈλ¦¬ νμμΌλ‘ μμ ν΄λμ€μ νμ ν΄λμ€λ‘ λλμ΄μ§λ νΈλ¦¬ ꡬ쑰μ΄λ€. νμ ν΄λμ€λ μμ ν΄λμ€μμ μΆμνμν¨ μμ±μ νΉμ λ©μλλ₯Ό μ μνλ©΄μ λ ꡬ체νλμ΄κ°λ€. λ°λ©΄μ, μΈν°νμ΄μ€λ νΈλ¦¬ ꡬ쑰μ κ°μ μμ§μ κ΅¬μ‘°κ° μλ μνμ ꡬ쑰λ₯Ό κ°μ§κ² λλ€. μμ§μ ꡬ쑰λ₯Ό κ°λ μΆμ ν΄λμ€λ νλμ μμ ν΄λμ€μκ²λ§ μμλ°μ μ μμ§λ§, μνμ ꡬ쑰μ μΈν°νμ΄μ€λ νλμ ν΄λμ€κ° μ¬λ¬ μΈν°νμ΄.. μλ°[Java] μ κ·Ό μ μ΄μ[Access modifier] μλ°μ μ κ·Ό μ μ΄μ default / public(package) / private / protected / static / final βΆ default(package) κ°μ₯ κΈ°λ³Έμ μΈ μ κ·Ό μ μ΄μλ‘ μλ΅μ΄ κ°λ₯νλ€. => μ κ·Ό μ μ΄μλ₯Ό μλ΅νλ©΄ defaultλ‘ μ€μ λλ€. defaultλ κ°μ ν¨ν€μ§ λ΄μ μλ classλΌλ©΄ μ κ·Όμ΄ κ°λ₯νλ€. 1λ² ν¨ν€μ§μ 1λ² ν΄λμ€λ₯Ό μ μνμλ€. 2λ² ν¨ν€μ§λ₯Ό λ§λ€κ³ 2λ² ν΄λμ€λ₯Ό λ§λ€κ³ 2λ² ν΄λμ€μ 1λ² ν΄λμ€λ₯Ό λΆλ¬μ€κΈ°(import)λ₯Ό νμ λ, μ€λ₯ λ°μ => κ°μ ν¨ν€μ§ μμμλ§ λΆλ¬μ€κΈ° κ°λ₯ βΆ public μ΄λ¦μ²λΌ μ΄λμλ λΆλ¬μ¬ μ μλ€. λ€λ₯Έ ν¨ν€μ§ μμ λ€λ₯Έ ν΄λμ€μμλ λΆλ¬μ μ¬μ© κ°λ₯νλ€. testPackage1 ν¨ν€μ§μ μλ TestClass2 .. μλ°(Java) μ¬μ©μ μ /μΆλ ₯κ³Ό λ²νΌ(butter) νλ‘κ·Έλ¨μ μ¬μ©νλ€ λ³΄λ©΄ μ¬μ©μ μ λ ₯μ λ°λ κ²½μ°κ° λ§λ€. cμΈμ΄λ javaμ κ²½μ° μ¬μ©μ μ λ ₯μ λ°μ λ, λ²νΌ(buffer)λΌλ λ μμ κ°μ μμλ‘ μ μ₯ν΄λμλ€κ° νλ²μ λ³μμ μ μ₯νλλ° μ«μμ λ¬Έμκ° λ€λ₯΄κ² λμν΄μ μ΄μν μλν λ°μ λ€λ₯΄κ² λκΈ°λ νλ€. βΆ λ²νΌ(buffer)μ μ΄ν΄ μΌλ¨, μ λ²νΌλΌλ κ²μ΄ μ‘΄μ¬νλμ§λΆν° μμμΌν κ² κ°λ€. μ»΄ν¨ν°μ λ°λΌ λ€λ₯΄κ² μ§λ§ μΌλ°μ μΈ μ»΄ν¨ν°(κ°μ μ©)λ 1μ΄μ μ½ 8μ² ~ 1μ΅ λ² μ λμ μ°μ°μ μ²λ¦¬ν μ μλ€κ³ νλ€. λ§μ½, μ»΄ν¨ν°κ° μ¬μ©μμκ² μ 보λ₯Ό μ λ ₯ λ°μμΌν λ, μ°λ¦¬κ° μ 보λ₯Ό λͺ¨λ μ λ ₯νκΈ°λ₯Ό κΈ°λ€λ €μΌ νλ€λ©΄, μ°λ¦¬κ° 1 / 1μ΅ μ΄ μμ νλμ κ°μ μ λ ₯νμ§ μλ ν μ»΄ν¨ν°λ κ·Έλμ κ³μ λκΈ°νκ³ μμ΄μΌ νλ€. CPUμ μ₯μμλ μν°μ§λ μΌμ΄ μλ.. 0000~1111 μλ°(JAVA) λ°μ΄ν° νμ ν¬κΈ°μ νλ³νμ λν΄μ... μ΅κ·Όμ μλ°(JAVA)λ₯Ό λ°°μ°κ³ μμ΅λλ€. κΈ°κ³κ³Όλ₯Ό μ 곡νκ³ λ°λ체 μ°μ μμ μΌνμκΈ° λλ¬ΈμΈμ§ κΈ°λ³Έ CSμ§μμ λν΄μ λ°°μΈ λ, νλμ¨μ΄μ κ΄λ ¨λ λΆλΆμ΄ μλΉν ν₯λ―Έλ‘μ μ΅λλ€. νλμ¨μ΄λ³΄λ€ μννΈμ¨μ΄κ° νκ³ μΆμ΄μ λμ΄μλλ° μννΈμ¨μ΄λ₯Ό λ°°μ°λ©΄μ νλμ¨μ΄μ κ΄μ¬μ΄ κ°λ μ¬λ³΄λ... βΆ λ°μ΄ν° νμ κ³Ό λ©λͺ¨λ¦¬ λλΆλΆ λΉμ·νκ² μ§λ§ μλ°μμ μ«μ λ°μ΄ν° νμ μ μ μμ μ€μλ‘ λλλλ° λ°μ΄ν° νμ (λ©λͺ¨λ¦¬μ μ μ₯λλ ν¬κΈ°)μΌλ‘ νννμλ©΄ μλμ κ°μ΅λλ€. μ μ νμ : byte(1 byte), char(2 byte), short(2 byte), int(4 byte), long(8 byte) μ€μ νμ : float(4 byte), double(8 byte) μλ―Έλ₯Ό μμλ³Ό λ, μ μλ‘ λΉκ΅νλ©΄ μ΄ν΄νκΈ°κ° μ½μ΅λλ€. λ¨Ό.. μ΄μ 1 2 λ€μ