IT 면접 족보33

권단비·2023년 2월 14일
0

IT

목록 보기
70/139

1. checked, unchecked Exception 에 대하여 설명하시오.

▼정답

[Checked Exception]
・IOException
・SQLException

[Unchecked Exception]
・Runtime Exception(실시간) = UnChecked Exception :
・ArrayIndexOutOfBound : 범위를 벗어남
예시)
public static void main(String[] args){
int[] arr = {1,2,3};
for(int i = 0; i < 4; i++)
System.out.println(arr[i]); // 인덱스 값 3은 예외를 발생시킴 (0,1,2까지 메모리 생성되어 있음.)

・ClassCastException : 자식=부모일 때 나오는 에러
예시)
class Board {
}
class PBoard extends Board {
}
public class ClassCastException {
	public static void main(String[] args) {
		Board pbd1 = new PBoard();
		PBoard pbd2 = (PBoard) pbd1; // Ok!
		System.out.println("..intermediate location..");
		Board ebd1 = new Board();
		PBoard ebd2 = (PBoard) ebd1; // Exception!
	}
}

・NullPointerException : str.length(); 에러
예시)
import java.util.Scanner;

public class NullPointerException {
	public static void main(String[] args) {
		String str = null;
		System.out.println(str); // null 출력

		int len = str.length(); // Exception!
	}
}

・ArithmeticException

・InputMismatchException

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

▼정답

예외 발생 지점에서 예외를 처리하지 않으면 해당 메소드를 호출한 영역으로 예외가 전달된다.

public static void main(String[] args) throws Exception {...}
→ main을 호출하는 JVM한테 exception을 던진다.
JVM은 콜스택 보여주면서 오류 띄워줌
 
public static void function1() throws InputMismatchException {...}
→ function1을 호출하는 main한테 exception을 던진다.

3.주소가 출력되는 이유를 설명하시오.

class A{
}
public class Test {
	public static void main(String[] args) {
		A a = new A();
		System.out.println(a); // String s = String.valueOf(x); -> s가 주소 뿌림
	}
}

▼정답

?

4. 다음 조건을 만족하도록 클래스 Person과 Student를 작성하시오.

- 클래스 Person
* 필드 : 이름, 나이, 주소 선언
- 클래스 Student
* 필드 : 학교명, 학과, 학번, 8개 평균평점을 저장할 배열로 선언
* 생성자 : 학교명, 학과, 학번 지정
* 메소드 average() : 8개 학기 평균평점의 평균을 반환
- 클래스 Person과 Student 
- 프로그램 테스트 프로그램의 결과 : 8개 학기의 평균평점은 표준입력으로 받도록한다.

이름 : 김다정
나이 : 20

주소 : 서울시 관악구
학교 : 동양서울대학교
학과 : 전산정보학과
학번 : 20132222

----------------------------------------

8학기 학점을 순서대로 입력하세요

1학기 학점  → 3.37
2학기 학점  → 3.89
3학기 학점  → 4.35
4학기 학점  → 3.76
5학기 학점  → 3.89
6학기 학점  → 4.26
7학기 학점  → 4.89
8학기 학점  → 3.89

----------------------------------------

8학기 총 평균 평점은 4.0375점입니다.

▼정답

import java.util.Scanner;
class Person1 {
	String name;
	int age;
	String adr;

	public Person1(String name, int age, String adr) {
		this.name = name;
		this.age = age;
		this.adr = adr;
	}
}

class Student1 extends Person1 {
	String sch;
	String maj;
	int num;
	double average = 0;
	double[] avg = new double[8];

	public Student1(String name, int age, String adr, String sch, String maj, int num) {
		super(name, age, adr);
		this.sch = sch;
		this.maj = maj;
		this.num = num;
	}

	public double average() {
		return this.average / avg.length;
	}
}

public class Test56 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		Student1 p = new Student1("김다정", 20, "서울시 관악구", "동양서울대학교", "전산정보학과", 20132222);
		System.out.println("이름: " + p.name);
		System.out.println("나이: " + p.age + "\n");
		System.out.println("주소: " + p.adr);
		System.out.println("학교: " + p.sch);
		System.out.println("학과: " + p.maj);
		System.out.println("학번: " + p.num);

		System.out.println("8학기 학점을 순서대로 입력하세요" + "\n");

		for (int i = 1; i <= p.avg.length; i++) {
			double input = sc.nextDouble();
			System.out.print(i + "학기 학점 → " + input + "\n");
			p.average += input;
		}
		System.out.println("8개 학기의 평균 평점: " + p.average());
	}
}

0개의 댓글