μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java
- C
- μ€λΌν΄DB
- ubuntu
- λ°μ΄ν° ν΅μ
- λ¬μ€νΈ
- λ¬μ€νΈ νλ‘κ·Έλλ° κ³΅μ κ°μ΄λ
- OS
- νμ΄μ¬ μκ³ λ¦¬μ¦
- λ¬μ€νΈ μμ
- μλ° κ°λ
- νμ΄μ¬ μ²Όλ¦°μ§
- νμ΄μ¬
- Python
- μ€λΌν΄
- μκ³ λ¦¬μ¦
- Database
- Operating System
- λ°±μ€ λ¬μ€νΈ
- Rust
- data communication
- μλ° κΈ°μ΄
- Python challenge
- νμ΄μ¬ μ±λ¦°μ§
- λ°μ΄ν°λ² μ΄μ€
- μ°λΆν¬
- μ΄μ체μ
- λ°±μ€
- Reversing
- μλ°
Archives
- Today
- Total
IT’s Portfolio
[Java] Lecture - Day 8 λ³Έλ¬Έ
728x90
λ°μν
π₯ Basic Java - Day 8
ππ» [Chapter 05] μμ
μμ(inheritance)
- κ°μ²΄ μ§ν₯ μΈμ΄μμμ μμ
- μμμ΄ λΆλͺ¨ μ μ μλ₯Ό λ¬Όλ €λ°λ κ²κ³Ό μ μ¬ν κ°λ
- μμμ νμμ±
- μμμ μ΄μ©ν κ²½μ° μ½λμ μ€λ³΅μ μ κ±°, ν΄λμ€λ₯Ό κ°κ²°νκ² κ΅¬ν κ°λ₯
- μμμ μ₯μ
- ν΄λμ€ μ¬μ΄μ΄ λ©€λ² μ€λ³΅ μ μΈ λΆνμ
- ν΄λμ€μ κ°κ²°ν
- ν΄λμ€λ€μ κ³μΈ΅μ λΆλ₯λ‘ ν΄λμ€ κ΄λ¦¬ μ©μ΄
- ν΄λμ€ μ¬μ¬μ©κ³Ό νμ₯μ ν΅ν μννΈμ¨μ΄ μμ°μ± ν₯μ
- ν΄λμ€ μ¬μ΄μ΄ λ©€λ² μ€λ³΅ μ μΈ λΆνμ
ν΄λμ€ μμκ³Ό κ°μ²΄
- μμ μ μΈ
- extends ν€μλλ‘ μ μΈ
- λΆλͺ¨ ν΄λμ€λ₯Ό λ¬Όλ €λ°μ νμ₯νλ€λ μλ―Έ
- λΆλͺ¨ ν΄λμ€ -> μνΌ ν΄λμ€(super class)
- μνΌ ν΄λμ€μ private λ©€λ²
- μλΈ ν΄λμ€μμ μ κ·Όν μ μμ
- μνΌ ν΄λμ€μ default λ©€λ²
- μλΈ ν΄λμ€κ° λμΌν ν¨ν€μ§μ μμ λ, μ κ·Ό κ°λ₯
- μνΌ ν΄λμ€μ public λ©€λ²
- μλΈ ν΄λμ€λ νμ μ κ·Ό κ°λ₯
- μνΌ ν΄λμ€μ protected λ©€λ²
- κ°μ ν¨ν€μ§ λ΄μ λͺ¨λ ν΄λμ€ μ κ·Ό νμ©
- ν¨ν€μ§ μ¬λΆμ μκ΄μμ΄ μλΈ ν΄λμ€λ μ κ·Ό κ°λ₯
- μνΌ ν΄λμ€μ private λ©€λ²
- μμ ν΄λμ€ -> μλΈ ν΄λμ€(sub class)
- μλΈ ν΄λμ€λ μνΌ ν΄λμ€μ private λ©€λ²λ₯Ό μ μΈν λͺ¨λ λ©€λ²μ μ κ·Όν μ μμ
- extends ν€μλλ‘ μ μΈ
- μλΈ ν΄λμ€ κ°μ²΄μ λͺ¨μ
- μνΌ ν΄λμ€ κ°μ²΄μ μλΈ ν΄λμ€ κ°μ²΄λ λ³κ°
- μλΈ ν΄λμ€ κ°μ²΄λ μνΌ ν΄λμ€ λ©€λ² ν¬ν¨
μλ° μμμ νΉμ§
- ν΄λμ€ λ€μ€ μμ(multiple inheritance) λΆν
- Cppμ λ€μ€ μμ κ°λ₯
- λ€μ€ μμμΌλ‘ λ©€λ²κ° μ€λ³΅ μμ±λλ λ¬Έμ κ° μμ
- μλ°λ μΈν°νμ΄μ€(interface)μ λ€μ€ μμ νμ©
- Cppμ λ€μ€ μμ κ°λ₯
- λͺ¨λ μλ° ν΄λμ€λ 묡μμ μΌλ‘ Object ν΄λμ€λ₯Ό μμλ°μ
- Java.lang.Object ν΄λμ€λ λͺ¨λ ν΄λμ€μ μνΌ ν΄λμ€
protected λ©€λ²
- κ°μ ν¨ν€μ§μ λͺ¨λ ν΄λμ€μκ² νμ©
- μμλλ μλΈ ν΄λμ€(κ°μ ν¨ν€μ§λ λ€λ₯Έ ν¨ν€μ§λ μκ΄ μμ)μκ² νμ©
μλΈ ν΄λμ€/μνΌ ν΄λμ€μ μμ±μ νΈμΆκ³Ό μ€ν
- μλΈ ν΄λμ€μ κ°μ²΄κ° μμ±λ λ
- μνΌ ν΄λμ€ μμ±μμ μλΈ ν΄λμ€ μμ±μ λͺ¨λ μ€ν
- μλΈ ν΄λμ€μ μμ±μ λ¨Όμ νΈμΆ
- μλΈ ν΄λμ€μ μμ±μλ μ€ν μ μνΌ ν΄λμ€ μμ±μ νΈμΆ
- μνΌ ν΄λμ€μ μμ±μκ° λ¨Όμ μ€νλ ν μλΈ ν΄λμ€μ μμ±μ μ€ν
- μνΌ ν΄λμ€ μμ±μμ μλΈ ν΄λμ€ μμ±μ λͺ¨λ μ€ν
μλΈ ν΄λμ€μ μνΌ ν΄λμ€μ μμ±μ μ ν
- μνΌ ν΄λμ€μ μλΈ ν΄λμ€
- κ°κ° μ¬λ¬ κ°μ μμ±μ μμ± κ°λ₯
- μλΈ ν΄λμ€μ κ°μ²΄κ° μμ±λ λ
- μνΌ ν΄λμ€ μμ±μ 1κ°μ μλΈ ν΄λμ€ μμ±μ 1κ°κ° μ€ν
- μλΈ ν΄λμ€μ μμ±μμ μνΌ ν΄λμ€μ μμ±μκ° κ²°μ λλ λ°©μ
- κ°λ°μμ λͺ
μμ μ ν
- μλΈ ν΄λμ€ κ°λ°μκ° μνΌ ν΄λμ€μ μμ±μ λͺ μμ μ ν
- super() ν€μλλ₯Ό μ΄μ©νμ¬ μ ν
- super(parameter)
- μΈμλ₯Ό μ΄μ©νμ¬ μνΌ ν΄λμ€μ μ λΉν μμ±μ νΈμΆ
- λ°λμ μλΈ ν΄λμ€ μμ±μ μ½λμ μ μΌ μ²« λΌμΈμ μμΌ ν¨
- super(parameter)
- μ»΄νμΌλ¬κ° κΈ°λ³Έ μμ±μ μ ν
- μλΈ ν΄λμ€ κ°λ°μκ° μνΌ ν΄λμ€μ μμ±μλ₯Ό μ ννμ§ μλ κ²½μ°
- μ»΄νμΌλ¬κ° μλμΌλ‘ μνΌ ν΄λμ€μ κΈ°λ³Έ μμ±μ μ ν
- κ°λ°μμ λͺ
μμ μ ν
μ μΊμ€ν (upcasting)
class Person { ... }
class Student extends Person { ... }
Person p;
Student s = new Student();
p = s; // μ
μΊμ€ν
, p = (Person)s μ²λΌ λͺ
μμ νμ
λ³ν λΆνμ
- μλΈ ν΄λμ€ λ νΌλ°μ€λ₯Ό μνΌ ν΄λμ€ λ νΌλ°μ€μ λμ
- μνΌ ν΄λμ€ λ νΌλ°μ€λ‘ μλΈ ν΄λμ€ κ°μ²΄λ₯Ό κ°λ¦¬ν€κ² λλ νμ
- μ μΊμ€ν ν λ νΌλ°μ€λ‘λ μ€μ§ μνΌ ν΄λμ€μ λ©€λ²λ§ μ κ·Ό
- μ μΊμ€ν μ μμ κ΄κ³μμλ§ λ°μ
- μ
μΊμ€ν
λ λ νΌλ°μ€λ‘λ κ°μ²΄μ μ€μ νμ
μ ꡬλΆνκΈ° μ΄λ €μ
- μνΌ ν΄λμ€λ μ¬λ¬ μλΈ ν΄λμ€μ μμλκΈ° λλ¬Έ
λ€μ΄μΊμ€ν (downcasting)
class Person { ... }
class Student extends Person { ... }
Person p = new Student("λ°νλΉ"); // μ
μΊμ€ν
Student s = (Student)p; // λ€μ΄μΊμ€ν
, κ°μ νμ
λ³ν
Student s = p; // μλͺ»λ λ°©μ
- μνΌ ν΄λμ€ λ νΌλ°μ€λ₯Ό μλΈ ν΄λμ€ λ νΌλ°μ€μ λμ
- μ μΊμ€ν λ κ²μ λ€μ μλλλ‘ λλ리λ κ²
- λ°λμ λͺ μμ νμ λ³ν μ§μ
instanceof μ°μ°μ
Person p = new Professor();
if(p instanceof Person) // true
if(p instanceof Student) // false. Studentλ₯Ό μμλ°μ§ μκΈ° λλ¬Έ
if(p instanceof Researcher) // true
if(p instanceof Professor) // true
if("java" instanceof String) // true
if(3 instanceof int) // μ€λ₯. instanceofλ κ°μ²΄μ λν λ νΌλ°μ€μλ§ μ¬μ©λ¨
- λ νΌλ°μ€κ° κ°λ¦¬ν€λ κ°μ²΄μ νμ
μλ³
κ°μ²΄λ νΌλ°μ€ instanceof ν΄λμ€νμ
- μ°μ°μ κ²°κ³Ό : boolean κ°
class Person { ... }
class Student extends Person { ... }
class Researcher extends Person { ... }
class Professor extends Researcher { ... }
public class InstanceOfEx {
static void print(Person p) {
if(p instanceof Person)
System.out.print("Person ");
if(p instanceof Student)
System.out.print("Student ");
if(p instanceof Researcher)
System.out.print("Researcher ");
if(p instanceof Professor)
System.out.print("Professor");
System.out.println();
}
public static void main(String[] args) {
System.out.print("new Student() -> "); print(new Student());
System.out.print("new Researcher() -> "); print(new Researcher());
System.out.print("new Professor() -> "); print(new Professor());
}
}
// Result
new Student() -> Person Student
new Researcher() -> Person Researcher
new Professor() -> Person Researcher Professor
- instanceof μμ
λ©μλ μ€λ²λΌμ΄λ©(Method Overriding)
- μλΈ ν΄λμ€μμ μνΌ ν΄λμ€μ λ©μλλ₯Ό μ€λ³΅ μμ±
- μνΌ ν΄λμ€μ λ©μλλ₯Ό 무λ ₯ν, νμ μλΈ ν΄λμ€μ μ€λ²λΌμ΄λ©ν λ©μλκ° μ€νλλλ‘ λ³΄μ₯
- "λ©μλ 무μνκΈ°", "λ©μλ μ¬μ μνκΈ°" λ‘ λ²μλκΈ°λ ν¨
- μ€λ²λΌμ΄λ© 쑰건
- μνΌ ν΄λμ€ λ©μλμ μν(λ©μλ μ΄λ¦, μΈμ νμ λ° κ°μ, λ¦¬ν΄ νμ )κ³Ό λμΌνκ² μμ±
- μ€λ²λΌμ΄λ©μ λͺ©μ
- λ€νμ± μ€ν
- νλμ μΈν°νμ΄μ€(κ°μ μ΄λ¦)μ μλ‘ λ€λ₯Έ ꡬν
- μνΌ ν΄λμ€μ λ©μλλ₯Ό μλΈ ν΄λμ€μμ κ°κ° λͺ©μ μ λ§κ² λ€λ₯΄κ² ꡬν
- λ€νμ± μ€ν
λμ λ°μΈλ©(dynamic binding)
- μ€νν λ λ©μλλ₯Ό μ»΄νμΌν λ(compile time)μ κ²°μ νμ§ μκ³ μ€νν λ(run time)μ κ²°μ νλ κ²
- μλ°λ λμ λ°μΈλ©μ ν΅ν΄ μλΈ ν΄λμ€μ ꡬνλμ΄ μλ μ€λ²λΌμ΄λ© λ©μλκ° νμ μ€νλλλ‘ λ³΄μ₯
- super
- μνΌ ν΄λμ€μ λ©€λ²μ μ κ·Όν λ μ¬μ©λλ λ νΌλ°μ€
- super.μνΌ ν΄λμ€μ λ©€λ²
- μλΈ ν΄λμ€μμλ§ μ¬μ©
- μνΌ ν΄λμ€μ νλ μ κ·Ό
- μνΌ ν΄λμ€μ λ©μλ νΈμΆ
- superλ‘ μ΄λ£¨μ΄μ§λ λ©μλ νΈμΆμ μ μ λ°μΈλ©
- μνΌ ν΄λμ€μ λ©€λ²μ μ κ·Όν λ μ¬μ©λλ λ νΌλ°μ€
μΆμ ν΄λμ€(abstract class)
- abstract method
- abstractλ‘ μ μΈλ λ©μλ, λ©μλμ μ½λλ μκ³ μνλ§ μ μΈ
- abstract class
- μΆμ λ©μλλ₯Ό κ°μ§λ©°, abstractλ‘ μ μΈλ ν΄λμ€
- μΆμ λ©μλ μμ΄, abstractλ‘ μ μΈν ν΄λμ€
- μΆμ ν΄λμ€λ μ¨μ ν ν΄λμ€κ° μλκΈ°μ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μμ
- μΆμ ν΄λμ€ μμ
- μΆμ ν΄λμ€λ₯Ό μμλ°μΌλ©΄ μΆμ ν΄λμ€κ° λ¨
- μλΈ ν΄λμ€λ abstractλ‘ μ μΈν΄μΌ ν¨
- μΆμ ν΄λμ€ κ΅¬ν
- μλΈ ν΄λμ€μμ μνΌ ν΄λμ€μ λͺ¨λ μΆμ λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ μ€ν κ°λ₯ν μ½λλ‘ κ΅¬ννλ κ²
- μΆμ ν΄λμ€λ₯Ό ꡬνν μλΈ ν΄λμ€λ μΆμ ν΄λμ€κ° μλ
- μΆμ ν΄λμ€λ₯Ό ꡬνν μλΈ ν΄λμ€λ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μμ
- μΆμ ν΄λμ€ λͺ©μ
- μμμ μν μνΌ ν΄λμ€λ‘ νμ©νλ κ²
- μΆμ ν΄λμ€λ μΆμ λ©μλλ₯Ό ν΅ν΄ μλΈ ν΄λμ€κ° ꡬνν λ©μλμ μνμ μλ €μ£Όλ μν
- λ€νμ± μ€ν
μΈν°νμ΄μ€
- μ₯μ
- μΈν°νμ΄μ€λ§ μ€μνλ©΄ ν΅ν©μ μ κ²½μ°μ§ μκ³ λ€μν ννλ‘ μλ‘μ΄ ν΄λμ€ κ°λ° κ°λ₯
- μλ°λ ν΄λμ€μ λ€μ€ μμμ μ§μνμ§ μμ§λ§, μΈν°νμ΄μ€λ‘ λ€μ€ μμμ ν¨κ³Όλ₯Ό κ°μ μ μΌλ‘ μ»μ μ μμ
- μλ°μ μΈν°νμ΄μ€
- ν΄λμ€κ° ꡬνν΄μΌ ν λ©μλλ€μ΄ μ μΈλλ μΆμν
- μΈν°νμ΄μ€ μ μΈ
- interface ν€μλλ‘ μ μΈ
- μλ° μΈν°νμ΄μ€μ λν λ³ν
- Java 7κΉμ§
- μΈν°νμ΄μ€λ μμμ μΆμ λ©μλλ‘λ§ κ΅¬μ±
- Java 8λΆν°
- μμμ μΆμ λ©μλ ν¬ν¨
- default λ©μλ ν¬ν¨ (Java 8)
- private λ©μλ ν¬ν¨ (Java 9)
- stativ λ©μλ ν¬ν¨ (Java 9)
- μ¬μ ν μΈν°νμ΄μ€μλ νλ(λ©€λ² λ³μ) μ μΈ λΆκ°
- Java 7κΉμ§
- μΈν°νμ΄μ€μ κ΅¬μ± μμλ€
- μμ
- publicλ§ νμ©, public static final μλ΅
- μΆμ λ©μλ
- public abstract μλ΅ κ°λ₯
- default λ©μλ
- μΈν°νμ΄μ€μ μ½λκ° μμ±λ λ©μλ
- μΈν°νμ΄μ€λ₯Ό ꡬννλ ν΄λμ€μ μλ μμ
- public μ κ·Ό μ§μ λ§ νμ©νλ©° μλ΅ κ°λ₯ν¨
- private λ©μλ
- μΈν°νμ΄μ€ λ΄μ λ©μλ μ½λκ° μμ±λμ΄μΌ ν¨
- μΈν°νμ΄μ€ λ΄μ μλ λ€λ₯Έ λ©μλμ μν΄μλ§ νΈμΆ κ°λ₯
- static λ©μλ
- public, private λͺ¨λ μ§μ κ°λ₯νλ©° μλ΅νλ©΄ public
- μμ
- μλ° μΈν°νμ΄μ€μ νΉμ§
- μΈν°νμ΄μ€μ κ°μ²΄ μμ± λΆκ°
- μΈν°νμ΄μ€ νμ μ λ νΌλ°μ€ λ³μ μ μΈ κ°λ₯
- μΈν°νμ΄μ€ μμ
- μΈν°νμ΄μ€ κ° μμ κ°λ₯
- μΈν°νμ΄μ€λ₯Ό μμνμ¬ νμ₯λ μΈν°νμ΄μ€ μμ± κ°λ₯
- extends ν€μλλ‘ μμ μ μΈ
- μΈν°νμ΄μ€ λ€μ€ μμ νμ©
- μΈν°νμ΄μ€ κ° μμ κ°λ₯
- μΈν°νμ΄μ€ ꡬν
- μΈν°νμ΄μ€μ μΆμ λ©μλλ₯Ό λͺ¨λ ꡬνν ν΄λμ€ μμ±
- implements ν€μλ μ¬μ©
- μ¬λ¬ κ°μ μΈν°νμ΄μ€ λμ ꡬν κ°λ₯
- μΈν°νμ΄μ€μ μΆμ λ©μλλ₯Ό λͺ¨λ ꡬνν ν΄λμ€ μμ±
728x90
λ°μν
'Development Study > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] Lecture - Day 10 (0) | 2023.12.12 |
---|---|
[Java] Lecture - Day 9 (1) | 2023.12.12 |
[Java] Lecture - Day 7 (0) | 2023.12.12 |
[Java] Lecture - Day 6 (0) | 2023.12.12 |
[Java] Lecture - Day 5 (0) | 2023.12.12 |
Comments