자바/Java TPC(생각하고, 표현하고, 코딩하고)

    다형성

    다형성

    1. 다형성 조건 1. 상속(extends) 또는 구현(implements) 2. 오버라이딩(Overring) 3. 부모타입 r = new 자식객체 (upcasting) 또는 인터페이스 r = new 구현클래스 2. 다형성 인수 public static void display (Animal r) { r.eat(); } Arnimal r의 매개변수로 new Dog(); new Cat(); new Horse(); new Cow(); 등 Animal의 모든 자식객체(하위클래스)를 받을 수 있다. 3. 다형성 배열 (서로 다른 자식객체를 담을 수 있다.) public class TPC24 { public static void main(String[] args) { Animal[] ani=new Animal[2]..

    부모와 자식간에는 형변환이 된다. & 나보다 부모가 먼저야

    부모와 자식간에는 형변환이 된다. & 나보다 부모가 먼저야

    1. 형변환방식 1) Animal ani = new Cat(); →이렇게 객체를 변환하는 방식을 upcasting이라 한다. →부모 =(자동형변환)자식 → ani.eat(); // 자식이 부모타입으로 형변환 되었더라도 오버라이딩 (overring)된 경우 자식객체Cat의 eat();이 호출된다. →"고양이 처럼 먹다." 출력 →ani.night(); 자식객체가 부모타입으로 형변환 됐으므로 부모타입이 가지고 있지 않은 night()메서드는 사용불가 →강제적 형변환 필요 2) Cat cat =(Cat)ani; →부모타입에서 자식타입으로 객체를 변환하는 방식을 downcasting이라 한다. → cat.night(); //사용가능 →밤에 눈이 빛난다. 2. 나보다 부모가 먼저인 이유 Animal d = new..

    오버라이딩(Overrring)

    오버라이딩(Overrring)

    2. 오버라이딩의 역할 1) Dog d = new Dog(); d.eat(); d객체변수의 타입이 Dog 타입이므로 부모의 eat("먹다") 가 무시가 되고, 오버라이딩(Overriding)된 자식의 eat("개처럼 먹다")가 출력된다. 2) Animal d=new Dog(); d.eat(); 원칙적으로 객체변수타입이 Animal이므로 객체변수 d접근할수 있는 객체는 Animal 객체이며는 Dog객체의 eat()에 접 근할 수 없다. 그러나 오버라이딩하는 경우 객체변수 d는 Dog객체의 eat()에 접근할수 있다. 따라서 d.eat()하는 경우 "개처럼 먹다"가 출력된다. 인프런의 Java TPC강의자료참고

    클래스의 정의

    클래스의 정의 1. DataType측면 : 새로운 자료형을 만드는(설계하는) 도구 = 모델링도구class를 Model이라고도 부른다. Class==설계도==Model 2. OOP 측면 : 객체의 상태정보(필드)와 행위정보(메소드)를 추출하여 캡슐화 하는 도구 3. Data transfer 측면 : 객체를 이동시키기 위한 이동수단(바구니) 우리가 만드는 Model(클래스)의 종류 1. DTO(Data Transfer Objec) : 데이터를 이동시키기 위해 담는 역할 2. DAO(Data Access Object) : 데이터를 처리하는 역할(비즈니스 로직), 데이터베이스와 CRUD하는 역할 3. Utility(Helper Object) : 도움을 주는 기능을 제공하는 역할(날짜, 시간, 인코딩 등) ※추가..