[JAVA]Javaプログラミング11


  • Animalインタフェース
  • package week001;
    
    interface Animal
    {
    	public void sound();
    }
    class Dog implements Animal
    {
    	public void sound()
    	{
    		System.out.println("멍멍~~");
    	}
    }
    class Duck implements Animal
    {
    	public void sound()
    	{
    		System.out.println("꽥꽥~~");
    	}
    }
    public class AnimalDemo {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Dog d = new Dog();
    		Duck c = new Duck();
    		makeSound(d);
    		makeSound(c);
    	}
    	public static void makeSound(Animal a)
    	{
    		a.sound();
    	}
    }
  • Circleクラス
  • package week001;
    
    public class Circle implements Shape{
    	private int radius;
    	public Circle(int r)
    	{
    		this.radius = r;
    	}
    	public void draw()
    	{
    		System.out.println("반지름이 " + radius + "인 원입니다.");
    	}
    	public double getArea()
    	{
    		double area;
    		area = PI * radius * radius;
    		return area;
    	}
    }
  • Ovalクラス
  • package week001;
    
    public class Oval implements Shape {
    	private int width, height;
    	public Oval(int w, int h)
    	{
    		this.width = w;
    		this.height = h;
    	}
    	public void draw()
    	{
    		System.out.println(width + "x" + height + "에 내접하는 타원입니다.");
    	}
    	public double getArea()
    	{
    		double area;
    		area = (double)width * (double)height * PI;
    		return area;
    	}
    }
  • Rectクラス
  • package week001;
    
    public class Rect implements Shape{
    	private int width, height;
    	public Rect(int w, int h)
    	{
    		this.width = w;
    		this.height = h;
    	}
    	public void draw()
    	{
    		System.out.println(width + "x" + height + "크기의 사각형입니다.");
    	}
    	public double getArea()
    	{
    		double area;
    		area = width * height;
    		return area;
    	}
    }
  • Shapeインタフェース
  • package week001;
    
    public interface Shape {
    	final double PI = 3.14;
    	void draw();
    	double getArea();
    	default public void redraw()
    	{
    		System.out.print("--- 다시 그립니다. ");
    		draw();
    	}
    }
  • ShapesクラスShapeインタフェース
  • を利用
    package week001;
    
    public class Shapes {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Shape donut = new Circle(10);
    		donut.redraw();
    		System.out.println("면적은 : " + donut.getArea());
    	}
    }
  • Shapes 1クラス
  • package week001;
    
    public class Shapes1 {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Shape [] list = new Shape[3];
    		list[0] = new Circle(10);
    		list[1] = new Oval(20, 30);
    		list[2] = new Rect(10, 40);
    		
    		for(int i=0; i<list.length; i++) list[i].redraw();
    		for(int i=0; i<list.length; i++) System.out.println("면적은 " + list[i].getArea());
    	}
    }