JAVA 13일차(221109)

점햠미·2022년 11월 9일
0

JATBAP'S JAVA

목록 보기
13/22
post-thumbnail

1. 메소드 오버라이딩(Overriding) 이란?

자식의 출력값이 부모한테 씌워지는거 :0

2.오버로딩 vs 오버라이딩 의 차이는?


출처 : https://hyoje420.tistory.com/14

3. @Override 에 대하여 설명하시오.

컴파일에 오버라이딩 할거라고 표시하는거.
혹시 부모 클래스에 있는 메소드 중에 이름이 같은게 없다면 컴파일 오류가 뜬다.
여러 사람과 함께 일할 때 알아보기 쉽게 표기해 주는 것이 좋음.

4.instanceof 연산자에 대하여 설명하시오.



출처 : https://mine-it-record.tistory.com/120

5. 다형성과 함수오버라이딩을 적용하여, 아래의 클래스들을 완성하시오.

Shape[] shape = 
{new Circle(10),new Triangle(10, 10),new Rectangle(10, 10)};
            
            for (Shape s : shape) {
                    sumArea += s.getArea();
                }
class Shape{
	public double getArea() {
		return 0.0;
	}
}
class Circle3 extends Shape{
	private int r;

	public Circle3(int r) {
		this.r=r;
	}
	@Override
	public double getArea() {
		return r*r*Math.PI;
	}
}

class Triangle extends Shape{
	private int width, height;

	public Triangle(int width, int height) {
		this.width = width;
		this.height = height;
	}
	@Override
	public double getArea() {
		return width*height / 2.0;
	}
}

class Rectangle2 extends Shape{
	private int width, height;

	public Rectangle2(int width, int height) {
		this.width = width;
		this.height = height;
	}
	@Override
	public double getArea() {
		return width*height;
	}
}


public class CircleOverriding {
	
	static double getArea(Circle3 circle) {
		return circle.getArea();
	}
	static double getArea(Triangle triangle) {
		return triangle.getArea();
	}
	static double getArea(Rectangle2 rectangle) {
		return rectangle.getArea();
	}
	
	// 위에 세개 만들어야될거 이거로 하면 하나로 해결됨 :3c
	// 다형성 이용해서 글케 되는거래. 
	static double getArea(Shape shape) {
		return shape.getArea();
	}
	
	public static void main(String[] args) {
		
		double sumArea = 0;
		
		Circle3 circle = new Circle3(10);
		Triangle triangle = new Triangle(10,10);
		Rectangle2 rectangle = new Rectangle2(10, 10);
		
		sumArea = 
        circle.getArea() + triangle.getArea() + rectangle.getArea();
		
		System.out.println("고객님 넓이는 " + sumArea + "입니다.");
		
		// 위와 동일한 출력값.
		// 근데 내용 추가되거나 하면 위보단 아래가 수정하기 더 간편하고 
        // 보기 좋으니까 아래를 추천.
		
		sumArea = 0;
		
		Shape[] shape = 
        {new Circle3(10), new Triangle(10,10), new Rectangle2(10, 10)};
		
		for (Shape s : shape) {
			sumArea += s.getArea();
		}
		
		System.out.println("고객님 넓이는 " + sumArea + "입니다.");
	}
}

6.아래를 프로그래밍 하시오.

겜블링 게임에 참여할 선수 숫자>>3
1번째 선수 이름>>영희
2번째 선수 이름>>철수
3번째 선수 이름>>길동
[영희]:<Enter>
3  3  2  아쉽군요!
[철수]:<Enter>
3  3  2  아쉽군요!
[길동]:<Enter>
1  1  1  길동님이 이겼습니다!
import java.util.Scanner;

class Player{
   private String name;
   private int[] arrNum;
   
   public Player(String name) {
      this.name = name;
   }
   
   public String getName() {
      return name;
   }
   
   public boolean game() {
      arrNum = new int[3];
      
      for(int i=0; i< arrNum.length;i++) {
         arrNum[i] = (int) (Math.random()*3 + 1);
      }
      
      System.out.print(arrNum[0]+" "+arrNum[1]+" "+arrNum[2]+" ");
      
      if((arrNum[0] == arrNum[1]) && (arrNum[1]== arrNum[2])) {
         return true;
      }
      
      return false;
   }
   
   
}

class Gamble {
   public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      
      System.out.print("1번째 선수 이름>>");
      String name = scanner.next();
      Player p1 = new Player(name);
      
      System.out.print("2번째 선수 이름>>");
      name = scanner.next();
      Player p2 = new Player(name);
      
      System.out.print("3번째 선수 이름>>");
      name = scanner.next();
      Player p3 = new Player(name);
      
      //버퍼 깨끗이 비우기
      String buffer = scanner.nextLine();
            
      while(true) {
         System.out.print("[" + p1.getName() + "]:<Enter>");
         buffer = scanner.nextLine();
         
         if(p1.game()) {
            System.out.println(p1.getName() +"님이 이겼습니다.");
            break;
         }
         System.out.println("아쉽군요!");
         
         System.out.print("[" + p2.getName() + "]:<Enter>");
         buffer = scanner.nextLine();


         if(p2.game()) {
            System.out.println(p2.getName() +"님이 이겼습니다.");
            break;
         }
         System.out.println("아쉽군요!");
         
         System.out.print("[" + p3.getName() + "]:<Enter>");
         buffer = scanner.nextLine();


         if(p3.game()) {
            System.out.println(p3.getName() +"님이 이겼습니다.");
            break;
         }
         System.out.println("아쉽군요!");
         
      }
      scanner.close();
   }
}

강사님이 주신거에서 사람만 한 명 추가했어요.......
감사합니다 하지만 제가 너무 초보인지라:3c......

profile
인생 망함 개조빱임

0개의 댓글