본문 바로가기

학교 & 학원 이론 수업/네이버 클라우드 AIaaS 개발자 양성 과정

3월 8일 자바 수업 정리 (다형성, 추상클래스, 인터페이스, 익명클래스, UML)

-업캐스팅 : 부모 클래스 변수로 자식 클래스 객체를 참조 

-동적바인딩 

-다형성

-추상클래스 : 추상클래스는 new로 생성할 수 없다. 

-인터페이스 : 인터페이스는 상수와 추상메서드로만 구성되어 있다 

-익명클래스 : 익명 클래스는 하나의 객체만 생성하면 되는 경우에 많이 사용. 부모 클래스에서 상속을 받아서 작성하거나 인터페이스를 구현하여서 작성할 수 있다. 

-UML 

 

오늘 어려웠던 코드 1

package study.day0308;
class Parent{
    public void play()
    {
        System.out.println("나는 부모!!일을 시킨다");

    }
}


class Child1 extends Parent
{
    @Override
    public void play() {
        // TODO Auto-generated method stub
        super.play();
        System.out.println("첫째: 나는 집안 청소를 할게요! ");
    }
}

class Child2 extends Parent
{
    @Override
    public void play() {
        // TODO Auto-generated method stub
        super.play();
        System.out.println("둘째: 나는 식사 담당을 할게요! ");
    }
}

class Child3 extends Parent
{
    @Override
    public void play() {
        // TODO Auto-generated method stub
        super.play();
        System.out.println("셋째: 저는 설거지를 할게요! ");
    }
}



public class Ex2Inheri {

    public static void process(Parent p)
    {
        p.play();  //다형성 
    }




    public static void main(String[] args) {
        // TODO Auto-generated method stub



        //다형성
//    Parent p=null; 
//    
//    p=new Child1(); 
//    p.play();
//    
//    p=new Child2(); 
//    p.play();
//    
//    p=new Child3(); 
//    p.play();


        process(new Child1());
        process(new Child2());
        process(new Child3());


    }

}

오늘 어려웠던 코드 2 

 

package study.day0308;

        import java.util.Scanner;

interface Command {
    public void process();

}

class Add implements Command {
    @Override
    public void process() {
        System.out.println("추가합니다");
    }
}

class Delete implements Command {
    @Override
    public void process() {
        System.out.println("삭제합니다");
    }
}

class Select implements Command {
    @Override
    public void process() {
        System.out.println("조회합니다");
    }
}

class Update implements Command {
    @Override
    public void process() {
        System.out.println("수정합니다");
    }
}

public class Ex10Interface {

    public static void process(Command comm) {
        comm.process(); // 1.추가합니다 2.삭제합니다 3.조회합니다 4.수정합니다 라고 출력 되도록 구현하기
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        int menu;
        Command comm = null;

        Exit: while (true) {
            System.out.println("1.추가 2.삭제 3.조회 4.수정 5.종료");
            menu = sc.nextInt();
            switch (menu) {
                case 1:
                    comm = new Add();
                    break;
                case 2:
                    comm = new Delete();
                    break;
                case 3:
                    comm = new Select();
                    break;
                case 4:
                    comm = new Update();
                    break;
                default:
                    System.out.println("**종료합니다**");
                    break Exit;
            }

            process(comm);
            System.out.println("=".repeat(30));

        }

    }
}