본문 바로가기

Java

(24)
[Java의 정석_연습문제 풀이] Chapter9 java.lang패키지와 유용한 클래스 [9-1] 다음과 같은 실행결과를 얻도록 SutdaCard클래스의 equal( )를 멤버변수인 num, isKwang의 값을 비교하도록 오버라이딩하고 테스트하시오.class Exercise9_1 {public static void main(String[] args) {SutdaCard c1 = new SutdaCard(3, true);SutdaCard c2 = new SutdaCard(3, true);System.out.println("c1=" + c1);System.out.println("c2=" + c2);System.out.println("c1.equals(c2):" + c1.equals(c2));}} class SutdaCard {int num;boolean isKwang; SutdaCard() ..
[Java의 정석_연습문제 풀이] Chapter8 예외처리 [8-1] 예외처리의 정의와 목적에 대해서 설명하시오. 답: 정의 - 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적 - 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 [8-2] 다음은 실행도중 예외가 발생하여 화면에 출력된 내용이다. 이에 대한 설명 중 옳지 않은 것은?java.lang.ArithmeticException : / by zero at ExceptionEx18.method2(ExceptionEx18.java:12) at ExceptionEx18.method1(ExceptionEx18.java:8) at ExceptionEx18.main(ExceptionEx18.java:4)a. 위의 내용으로 예외가 발생했을 당시 호출스택에 존재했던 메서드를..
[Java의 정석_연습문제 풀이] Chapter7 객체지향 프로그래밍2 [7-1] 섯다카드 20장을 포함하는 섯다카드 한 벌(SutdaDeck클래스)을 정의한 것이다. 섯다카드 20장을 담는 SutdaCard배열을 초기화하시오. 단, 섯다카드는 1부터 10까지의 숫자가 적힌 카드가 한 쌍씩 있고, 숫자가 1, 3, 8인 경우에는 둘 중의 한 장은 광(Kwang)이어야 한다. 즉, SutdaCard의 인스턴스변수 isKwang의 값이 true이어야 한다. class SutdaDeck {final int CARD_NUM = 20;SutdaCard[] cards = new SutdaCard[CARD_NUM]; SutdaDeck() {/* (1)배열 SutdaCard 를 적절히 초기화 하시오. */}} class SutdaCard {int num;boolean isKwang; Su..
[Java의 정석_연습문제 풀이] Chapter6 객체지향 프로그래밍1 [6-1] 다음과 같은 멤버변수를 갖는 SutdaCard클래스를 정의하시오. 타입 변수명 설명 int num 카드의 숫자. (1~10사이의 정수) boolean isKwang 광(光)이면 true, 아니면 false 답: public class SutdaCard {int num;boolean isKwang;} [6-2] 문제 6-1에서 정의한 SutdaCard클래스에 두 개의 생성자와 info()를 추가해서 실행결과와 같은 결과를 얻도록 하시오. class Exercise6_2 { public static void main(String args[]) { SutdaCard card1 = new SutdaCard(3, false); SutdaCard card2 = new SutdaCard(); System...
[Java의 정석_연습문제 풀이] Chapter5 배열 [5-1] 다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하시오.a. int[] = arr[];b. int[] arr = {1,2,3,};-> 마지막의 쉼표는 있어도 상관없음.c. int[] arr = new int[5];d. int[] arr = new int[5]{1,2,3,4,5}; -> 두 번째 대괄호안에 배열의 크기를 지정할 수 없다. 괄호{} 안의 데이터 개수에 따라 자동적으로 결정되기 때문이다.e. int arr[5];-> 배열을 선언할 때는 배열의 크기를 지정할 수 없음.f. int[] arr[] = new int[3][]; 답 : d, e [5-2] 다음과 같은 배열이 있을 때, arr[3].length의 값은 얼마인가?int[][] arr = { { 5, ..
[Java의 정석_연습문제 풀이] Chapter4 조건문과 반복문 [4-1] 다음의 문장들을 조건식으로 표현하라. 1. int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식 답 : if(x>10 && x= '0' && ch = 'A' && ch = 'a' && ch
[Java의 정석_연습문제 풀이] Chapter3 연산자 [3-1] 다음 연산의 결과를 적으시오.class Exercise3_1 { public static void main(String[] args) { int x = 2; int y = 5; char c = 'A'; // 'A'의 문자코드는 65 System.out.println(1 + x = 5 || x 2); System.out.println(y += 10 - x++); System.out.println(x+=2); System.out.println( !('A' 이전의 식에서 x의 값이 1증가하였으므로 3에 2를 더한 5가 결과가 된다.5) false6) 27) 58) 66-> c의 값이 'A'이므로 'A'+1이 되고, 이항연산자의 성질(int보다 작은 타입은 int로 변환 후 연산)..
[Java의 정석_연습문제 풀이] Chapter2 변수 [2-1] 다음 표의 빈칸에 8개의 기본형(primitive type)을 알맞은 자리에 넣으시오. 답: 종류/크기 1byte 2byte 4byte 8byte 논리형 boolean 문자형 char 정수형 byte short int long 실수형 float double [2-2] 주민등록번호를 숫자로 저장하고자 한다. 이 값을 저장하기 위해서는 어떤 자료형(data type)을 선택해야 할까? regNo라는 이름의 변수를 선언하고 자신의 주민등록번호로 초기화하는 한 줄의 코드를 적으시오. 답: long regNo = 9400001234567L; 해설 : 주민등록번호는 13자리의 정수이기 때문에 int형의 범위를 넘어서는 값이다. 그래서 long형을 사용해야 한다. 그리고 리터럴의 접미사 'L'을 잊어서는 ..