Java

    [Java] isEquals

    1. isEquals 문제 연산자는 참조변수의 참조 값을 비교한다. 따라서 인스턴스에 저장되어 있는 값 자체를 비교하려면 별도의 방법을 사용해야 한다. 값 자체를 비교할 수 있도록 public boolean isEquals(IntNumber numObj) 메소드를 정의하시오. class IntNumber { int num; public IntNumber(int num) { this.num=num; } public boolean isEquals(IntNumber numObj) { return this.num == numObj.num; } } class ObjectEquality { public static void main(String[] args) { IntNumber num1=new IntNumber(..

    [Java] 이클립스 단축키 모음

    F1 : 도움말 F2 : 컴파일 에러 원인을 알려줌(컴파일 에러의 빨간 줄에 커서를 놓고 해당 키를 누름) F3 : 해당 변수 또는 메소드가 선언된 위치로 이동 F4 : 해당 클래스의 계층 구조를 보여줌(클래스 선택 후 해당 키를 누름) F5 : Step Into(디버깅 시 한 줄씩 실행 함수의 내부로 이동) F6 : Step Over(디버깅 시 한 줄씩 실행) F7 : Step Return : 스텝 밖으로 나간다. 함수 안이였다면 함수 호출한 소스로 이동한다. F8 : 디버깅 계속 F11 : 디버깅 시작 F12 : Editor 창으로 이동한다 Alt + 좌우 방향키(← / →) : 이전 / 다음 작업 화면으로 이동 Ctrl + / : 한 줄(선택된 블록) 주석 처리 또는 해제 Ctrl + 콤마(,) 또..

    [Java] default 메소드 & static 메소드

    static 메소드 원래는 인터페이스에 추상 메소드만 선언할 수 있는데 JDK1.8부터 default 메소드와 static 메소드도 추가할 수 있게 되었다. static 메소드는 인스턴스와 관계가 없는 독립적인 메소드이기 때문에 예전부터 인터페이스에 추가하지 못할 이유가 없었다. 그러나 자바를 보다 쉽게 배울 수 있도록 규칙을 단순화 해야 했으므로 인터페이스의 모든 메소드는 추상 메소드여야한다는 규칙에 예외를 두지 않았다. 덕분에 인터페이스와 관련된 static 메소드는 별도의 클래스에 따로 두어야 했다. 가장 대표적인 것으로 java.util.Collecion 인터페이스가 있는데, 이 인터페이스와 관련된 static 메소드들이 인터페이스에는 추상 메소드만 선언할 수 있다는 원칙 때문에 별도의 클래스, ..

    [Java] Vector 클래스

    class Product { int price;// 제품의 가격 int bonusPoint;// 제품구매 시 제공하는 보너스점수 Product(int price) { this.price = price; bonusPoint =(int)(price/10.0); } Product() {} // 기본 생성자 } class Tv extends Product { Tv() { super(100); } public String toString() { return "Tv"; } } class Computer extends Product { Computer() { super(200); } public String toString() { return "Computer"; } } class Audio extends Produ..

    [Java] import문 & static import문

    import문 모든 소스파일(.java)에서 import문은 package문 다음에, 그리고 클래스 선언문 이전에 위치해야 한다. import문은 package문과 달리 한 소스 파일에 여러 번 선언할 수 있다. 1. 일반적인 소스파일(.java)의 구성 순서 ① package문 ② import문 ③ 클래스 선언 2. import문 선언 방법 - import 패키지명.클래스명; - import 패키지명.*; ex) import java.util.Calendar; import java.util.Date; import java.util.ArraysList; 3. 여러 import문 하나로 처리하기 위처럼 import문을 여러 번 사용하는 대신 아래처럼 한 문장으로 처리할 수 있다. import java.ut..

    [Java] 예외처리 연습문제

    [ 예외처리 연습문제 ] 1. 다음 소스 코드는 컴파일시 에러가 난다. 이유는? class ExceptionEx1 { public static void main(String[] args) { try { try{} catch (Exception e){ } } catch (Exception e){ try{} catch (Exception e) { } } // try-catch의 끝 try { } catch (Exception e){ } // try-catch의 끝 }// main메서드의 끝 } ☞ try~catch 블럭 안의 try~catch 블럭에서 Exception e 변수명 e가 중복으로 사용되었다. 2. 다음 소스코드는 예외가 발생하는 소스코드이다. 어디서 예외가 발생하나? 그리고 그 이유는? cla..

    [Java] 자바의 정석 Chapter8. 예외처리(Exception Handling) - 연습문제

    [ 자바의 정석 Chapter8. 예외처리(Exception Handling) - 연습문제 ] 8-1. 예외처리의 정의와 목적에 대해서 설명하시오. (1) 예외처리의 정의 - 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 대비한 코드를 작성하는 것 (2) 예외처리의 목적 - 예외 상황이 발생했을 때 프로그램을 종료하지 않고 정상 실행 상태가 유지될 수 있도록 하기 위해 8-2. 다음은 실행 중 예외가 발생하여 화면에 출력된 내용이다. 이에 대한 설명 중 옳지 않은 것은? java.lang.ArithmeticException : / by zero at ExceprionEx18. method2(ExceptionEx18.java : 12) at ExceprionEx18. m..

    [Java] 자바의 정석 Chapter7. 객체지향 프로그래밍2 - 연습문제

    [ 자바의 정석 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를 적절히 초기화 하시오. */ } } cl..

    [Java] MenuException

    [ MenuException ] import java.util.Scanner; public class MenuMain { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int menu = 0; while (true) { System.out.println("1.메뉴2.메뉴3.메뉴4.메뉴"); menu = sc.nextInt(); try { if(menu 4) throw new MenuException(menu); switch (menu) { case 1: break; default: break; } } catch (MenuException e) { System.out.println(e.ge..

    [Java] 단계별 프로젝트 - 전화번호 관리 프로그램 06단계

    [ 전화번호 관리 프로그램 06단계 ] 우리가 직접 예외의 상황을 정의하고, 해당 예외의 표현을 위한 예외 클래스를 정의해서 단계별 프로젝트에 반영해보고자 한다. * 초기 메뉴 선택에서 1, 2, 3, 4 이외의 값을 입력하는 예외상황 * 데이터 입력의 과정에서 1, 2, 3 이외의 값을 입력하는 예외상황 이 두 가지 예외상황 모두 그 유형이 동일하니, MenuChoiceException이라는 이름의 예외 클래스를 하나 정의해서 위의 두 상황에 모두 활용하기로 하겠다. 그리고 위의 두 가지 중 어느 예외상황이 발생을 하건, 프로그램의 흐름은 '초기 메뉴 선택'으로 이동하는 것을 원칙으로 하자. (실행 예) 선택하세요... 1. 데이터 입력 2. 데이터 검색 3. 데이터 삭제 4. 모든 데이터 보기 5. ..