Java

    [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메서드의 끝 ☞ catch 블럭 안에 또 try~catch문이 사용되었는데 위의 try에서와 참조변수의 이름이 중복 선언되었다. 2. 다음 소스코드는 예외가 발생하는 소스코드이다. 어디서 예외가 발생하나? 그리고 그 이유는? class ..

    [Java] 예외처리 설명

    [ 예외처리 설명 ] 1. printStackTrace() - 예외 발생 당시의 호출 스텍(Call Stact)에 있었던 메소드의 정보와 예외 메시지를 화면에 출력한다. 2. getMessage() - 발생한 예외 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다. 3. 멀티 catch 블럭 - JDK1.7부터 여러 catch 블럭을 ' | ' 기호를 이용해서, 하나의 catch 블럭으로 합칠 수 있게 되었으며, 이를 '멀티 catch블럭'이라고 한다. 아래의 코드에서 알 수 있듯이 '멀티 catch블럭'을 이용하면 중복된 코드를 줄일 수 있다. 그리고 ' | ' 기호로 연결할 수 있는 예외 클래스의 개수에는 제한이 없다. (멀티 catch 블럭에 사용되는 ' | ' 는 논리 연산자가 아니라 기호이다.)..

    [Java] 예외 처리 / try~catch구문 & throws & 실습문제

    1. 예외 처리 1 2 3 4 5 6 7 8 9 class Test { public static void main(String[] args0 { int result = 0; result = 10/0; System.out.println("결과 값은 " + result); } } Colored by Color Scripter cs 어떠한 수도 0으로 나눌 수 없기 때문에 result=10/0에 의해 에러가 발생하게 된다. 이렇게 문법적으로 잘못된 부분이 없는데도 코드 수행에 오류가 발생하는 경우를 '예외'가 발생한다고 하고 이를 처리하기 위한 방법들이 있다. 2. try~catch 구문으로 예외 처리하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Test { public..

    [Java] 전화번호 관리 프로그램 - 전화번호 05단계

    1. 전화번호 관리 프로그램 - 전화번호 05단계 우리가 정의한 Manager 클래스는 생성되는 인스턴스의 수가 하나인 클래스이다. 이 클래스의 성격을 봐서 알겠지만, 이 클래스의 인스턴스는 둘 이상 생성될 필요가 업으며, 혹시라도 둘 이상의 인스턴스가 생성된다면 이는 실수로 인한 것일 확률이 높다. 그래서 이번 단계에서는 Manager 클래스의 인스턴스 수가 최대 하나를 넘지 않도록 코드를 변경하고자 한다. 그리고 본 프로젝트에서는 프로그램 사용자로부터 다음 중 하나의 선택을 입력 받아서 프로그램을 실행하고 있다. 1. 데이터 입력 2. 데이터 검색 3. 데이터 삭제 4. 모든 데이터 보기 5. 프로그램 종료 뿐만 아니라, 위의 다섯 가지 중에서 '데이터 입력'을 선택하면, 다음 세가지 중 하나의 선택..

    [Java] 아스키코드 & 유니코드

    1. 아스키 코드 초창기에는 다양한 방법으로 문자를 표현했는데, 호환 등 여러 문제가 발생했다. 이런 문제를 해결하기 위해 ANSI에서 ASCII(American Standard Code for Information Interchange)라는 표준 코드 체계를 제시했고, 현재 이 코드가 일반적으로 사용되고 있다. ASCII는 각 문자를 7비트로 표현하므로 총 128(= 27)개의 문자를 표현할 수 있다. 0000000 NUL 0100000 Space 1000000 @ 1100000 ` 0000001 SOH (Start of Heading) 0100001 ! 1000001 A 1100001 a 0000010 STX (Start of Text) 0100010 “ 1000010 B 1100010 b 00000..

    [Java] Math.random()

    1. Math.random() Math.random() 메소드는 0이상 1미만 사이의 실수 범위에서 난수를 발생시킨다. (1) 예문1 - 0이상 1미만의 실수 난수 3개 생성 시키기 1 2 3 4 5 6 7 8 9 10 public class Test { public static void main(String[] args) { for(int i=0;i

    [Java] 난수 - 숫자 야구게임

    1. 숫자 야구게임 - out : 숫자 x / 자릿수 x - 1 ball : 숫자 o / 자릿수 x - 1 strike : 숫자 o / 자릿수 o - 1strike 1ball : 1strike 숫자 1개 / 1ball 숫자 1개 - 1~9까지 원하는 자리수의 난수를 발생하여 맞추는 게임 [ 예시 ] 자 공격하세요. (사용자 숫자 입력) 숫자는 100이상 999 이하의 겹치지 않는 숫자여야 합니다. 자 공격하세요. (사용자 숫자 입력) 숫자는 100이상 999 이하의 겹치지 않는 숫자여야 합니다. 자 공격하세요. (사용자 숫자 입력) 0 스트라이크 1 볼 자 공격하세요. (사용자 숫자 입력) 숫자는 100이상 999 이하의 겹치지 않는 숫자여야 합니다. 자 공격하세요. (사용자 숫자 입력) 1 스트라이크 ..

    [Java] 난수 - 두 수 사이의 난수 생성 & 로또 숫자 생성

    1. 두 수 사이의 난수 프로그램 사용자로부터 최대 정수 A와 최소 정수 B를 입력 받는다. 그리고 A와 B사이에 존재하는(A와 B도 포함) 난수 10개를 생성해서 출력하는 프로그램을 작성해보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import java.util.Scanner; import java.util.Random; class RandomGame { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Random rand = new Random(); int start=0, end=0; System.out.println("첫 번째 숫자를 입력하세요."); st..

    [Java] 변수

    1. 변수의 초기화 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다. 변수의 초기화는 경우에 따라서 필수적이기도 하고 선택적이기도 하지만, 가능하면 선언과 동시에 적절한 값으로 초기화 하는 것이 바람직하다. 멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지므로 초기화하지 않고 사용해도 되지만, 지역변수는 사용하기 전에 반드시 초기화해야 한다. (1) 예문 - 지역변수의 초기화가 필요한 이유 1 2 3 4 5 6 7 8 9 10 11 class InitTest { int x; // 인스턴스 변수 int y = x; // 인스턴스 변수 void method1() { int i; // 지역변수 int j = i; // 지역변수인 i가 초기화 되..

    [Java] 메소드 오버로딩 & 메소드 시그니처

    1. 메소드 오버로딩 메소드의 이름과 갯수가 같을 때 매개변수의 갯수가 다르거나, 자료형이 다른 경우를 말한다. 서로 메소드의 이름이 동일하더라도 메소드 시그니처를 통해 메소드가 판별 된다. - 클래스 내에 같은 이름의 메소드를 여러개 선언하는 것 - 매개 변수의 타입, 개수, 순서 중 한 가지가 달라야 한다. - 매개값을 다양하게 받아 처리할 수 있도록 하기 위해 사용된다. 2. 메소드 시그니처 Java에서 메소드 시그니처는 메소드의 정의에서 메소드 이름과 매개변수 리스트의 조합을 말한다. 메소드 이름과 매개변수 리스트가 중요한 이유는 '오버로딩' 때문이다. 1 2 3 4 5 6 public void funcA(int x, inty) { } public void funcA(double x, int y,..