JAVA 16일차(221114)

점햠미·2022년 11월 14일
0

JATBAP'S JAVA

목록 보기
16/22
post-thumbnail

1. throws 에 대하여 설명하시오.


출처 : https://tlatmsrud.tistory.com/49

2.checked 와 unckecked Excetpion 을 설명하시오.


출처 : https://madplay.github.io/post/java-checked-unchecked-exceptions

3. 아래가 컴파일 에러가 나는 이유에 대하여 설명하시오.

try {
		int num = 6 / 0;
} catch (Exception e) {
		e.printStackTrace();
} catch (InputMismatchException e) {
		e.printStackTrace();
}
위의 catch에서 Exception으로 이미 다 걸러버려서 ..
밑의 catch로 내려와서 걸러질게 없어서. 

4. try - catch - finally 에 대하여 설명하시오.



출처 : https://tlatmsrud.tistory.com/49


고수상이 설명해주심.

5.다음을 프로그래밍 하시오.

// 소스
Fruit fAry[] = {new Grape(), new Apple(), new Pear());
for(Fruit f : fAry)
f.print();
결과
나는 포도이다.
나는 사과이다.
나는 배이다.
class Fruit{
	public void print() {
		System.out.println();
	}
}
class Grape extends Fruit{
	public void print() {
		System.out.println("나는 포도이다.");
	}
}
class Apple extends Fruit{
	public void print() {
		System.out.println("나는 사과이다.");
	}
}
class Pear extends Fruit{
	public void print() {
		System.out.println("나는 배이다.");
	}
}
public class FruitException {
	public static void main(String[] args) {
		Fruit fAry[] = {new Grape(), new Apple(), new Pear()};
		for(Fruit f : fAry)
		f.print();
	}
}

근데 이게 맞나..?걍 아는대로 하긴 했는데요....오늘 배운거랑 젠젠 상관 없어보이는디 ㅎㅎ............몰?루

6. 다음은 도형 구성을 묘사하는 인터페이스이다.

interface Shape {
	final double PI = 3.14; // 상수
	void draw(); // 도형을 그리는 추상 메소드
	
	double getArea(); // 도형의 면적을 리턴하는 추상 메소드
	default public void redraw() { // 디폴트 메소드
		System.out.print("--- 다시 그립니다.");
		draw();
	}
}
다음 main() 메소드와 실행 결과를 참고하여, 
인터페이스 Shape을 구현한 클래스 Circle를 작성하고 전체 프로그램을 완성하라.
public class ShapeMain {
	public static void main(String[] args) {
		Shape donut = new Circle(10); // 반지름이 10인 원 객체
		donut.redraw();
		System.out.println("면적은 "+ donut.getArea());
	}
}
interface Shape {
	final double PI = 3.14; // 상수
	void draw(); // 도형을 그리는 추상 메소드

	double getArea(); // 도형의 면적을 리턴하는 추상 메소드
	default public void redraw() { // 디폴트 메소드
		System.out.print("--- 다시 그립니다.");
		draw();
	}
}
class Circle implements Shape{
	double r;

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

	@Override
	public void draw() {

	}

}
public class ShapeExample {
	public static void main(String[] args) {
		Shape donut = new Circle(10); // 반지름이 10인 원 객체
		donut.redraw();
		System.out.println("면적은 "+ donut.getArea());
	}
}

맞나...................?

7.다음 main() 메소드와 실행 결과를 참고하여, 문제 6의 Shape 인터페이스를 구현한 클래스 Oval, Rect를 추가 작성하고 전체 프로그램을 완성하라.

public static void main(String[] args) {
	Shape[] list = new Shape[3]; 
    // Shape을 상속받은 클래스 객체의 레퍼런스 배열
	list[0] = new Circle(10); // 반지름이 10인 원 객체
	list[1] = new Oval(20, 30); // 20x30 사각형에 내접하는 타원
	list[2] = new Rect(10, 40); // 10x40 크기의 사각형
	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());
}

/*
--- 다시 그립니다.반지름이 10인 원입니다.
--- 다시 그립니다.20x30에 내접하는 타원입니다.
--- 다시 그립니다.10x40크기의 사각형 입니다.
면적은 314.0
면적은 1884.0000000000002
면적은 400.0
*/
interface Shape2 {
	final double PI = 3.14; // 상수
	void draw(); // 도형을 그리는 추상 메소드

	double getArea(); // 도형의 면적을 리턴하는 추상 메소드
	default public void redraw() { // 디폴트 메소드
		System.out.print("--- 다시 그립니다.");
		draw();
	}
}
class Circle2 implements Shape2{
	double r;

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

	@Override
	public void draw() {
		System.out.println("반지름이 " + r + "인 원입니다.");
	}
}
class Oval implements Shape2{
	int width;
	int height;

	public Oval(int width, int height) {
		this.width = width;
		this.height = height;
	}

	@Override
	public void draw() {
		System.out.println
        (width + "x" + height + "에 내접하는 타원입니다.");
	}

	@Override
	public double getArea() {
		return width * height * 0.25 * PI;
	}
}
class Rect implements Shape2{
	int width;
	int height;

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

	@Override
	public void draw() {
		System.out.println
        (width + "x" + height + "크기의 사각형 입니다.");
	}
}
public class ShapeExample2 {
	public static void main(String[] args) {
		Shape2[] list = new Shape2[3]; 
		// Shape을 상속받은 클래스 객체의 레퍼런스 배열
		list[0] = new Circle2(10); // 반지름이 10인 원 객체
		list[1] = new Oval(20, 30); // 20x30 사각형에 내접하는 타원
		list[2] = new Rect(10, 40); // 10x40 크기의 사각형
		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());
	}

타원형 면적 계산은 몰라서 고수님꺼 걍 긁었어요

8. 래퍼 클래스(Wrapper class)란 무엇인가?


출처 : http://www.tcpschool.com/java/java_api_wrapper

9. auto unboxing 이란?



출처 : http://www.tcpschool.com/java/java_api_wrapper

10. BigInteger 클래스의 용도는?



출처 : https://madplay.github.io/post/biginteger-in-java

profile
인생 망함 개조빱임

0개의 댓글