목록JAVA (194)
WON.dev
package org.joonzis.ex; /* * DepositException: 마이너스 입금 처리, 예외 코드 1000 * WithdrawException: 잔액초과 출금 처리, 예외 코드 2000 * : 마이너스 출금 처리, 예외 코드 2001 */ class BankAccount{ // 필드 private String no;// 계좌 번호 private long balance;// 계좌 잔액 public BankAccount(String no, long balance) { this.no = no; this.balance = balance; } // 입급 public void deposit(long money) throws DepositException{ if(money < 0) { throw n..
package org.joonzis.ex; // 예외 클래스 : Exception을 상속 받아서 만든다(Custom Exception) // 예외 클래스를 만드는 이유 : 사용자 친화적인 예외 메세지로 변경 가능. // 예외가 아닌 것도 예외로 만들 수 있다. class MyException extends Exception{ // 경고 없애려고 넣은거니까 신경쓰지말자 당장은 private static final long serialVersionUID = 1L; public MyException(String message) { super(message); } } public class Ex08_exception { public static void main(String[] args) { try { thro..
package org.joonzis.ex; public class Ex07_exception { public static void divide(int num1, int num2) throws ArithmeticException { System.out.println("몫 : " + (num1 / num2)); System.out.println("나머지 : " + (num1 % num2)); } // try-catch 하기 싫으면 떠넘기자 public static void main(String[] args) throws ArithmeticException{ divide(5, 2); divide(5, 0); } }
package org.joonzis.ex; /* * throws(예외 떠넘기기) * - 메소드를 호출한 곳으로 예외를 떠넘긴다. * - 떠넘길 예외 클래스를 쉼표(,)로 구분해서 나열할 수 있다. * - throws 키워드가 붙어있는 메소드는 반드시 try 블록 내에서 호출되어야 한다. * * *** 예외가 발생하는 곳에서 직접 try-catch 하지 않는 이유는 * 동시에 여러 개발자가 같은 메소드를 바라보고 있을 시 * 공용 처리보다는 throws로 각각 가져와 개별 처리를 하기 위함이다. */ public class Ex06_exception { // divide 메소드가 예외 발생 가능성이 있음 // throws를 사용하면 예외를 호출한 곳(main)으로 던진다. // 메소드를 여러 곳에서 사용하..
package org.joonzis.ex; interface Animal{ public void walk(); } class Dog implements Animal{ @Override public void walk() { System.out.println("산책한다."); } public void sleepTogether(){ System.out.println("같이 잔다."); } } class Crocodile implements Animal{ @Override public void walk() { System.out.println("악어 피해 도망간다."); } } public class Ex05_exception { public static void verifyDog(Animal animal) {..
package org.joonzis.ex; /* * NullPointerException * 객체 참조가 없는 상태, 즉 null 값을 갖는 객체를 사용하는 경우 예외 발생 */ public class Ex04_exception { public static void main(String[] args) { try { //String name = null;// 예외 발생 String name = "김씨"; System.out.println("이름 : " + name.toString()); } catch (Exception e) { System.out.println("예외발생"); System.out.println(e.getMessage()); System.out.println("-------------");..
package org.joonzis.ex; /* * NumberFormatException * 주어진 문자열을 정수 및 실수로 변환하지 못할 경우 예외 발생 */ public class Ex03_exception { public static void main(String[] args) { String data1 = "100"; String data2 = "100a"; // 위 변수 데이터를 파싱하여 숫자로 출력 // 첫 번째 변환한 값 : // 두 번째 변환한 값 : // 출력 // 예외 발생 시 "문자열을 숫자로 변환할 수 없습니다." 출력 try { int val1 = Integer.parseInt(data1); System.out.println("첫 번째 변환한 값 : " + val1); int v..
package org.joonzis.ex; /* * ArrayIndexOutOfBoundsException * 배열에서 인덱스 범위를 초과하는 경우 예외 발생 */ public class Ex02_exception { public static void main(String[] args) { /*크기 3 짜리 정수형 배열 arr 를 선언 * 각 인덱스에 순서대로 1, 2, 3 데이터 삽입 * 향상 for문을 이용하여 배열 내 데이터 출력 * * *** 예외 처리 *** * 에러 발생 시 * "인덱스 가용 범위를 벗어났습니다." 출력 */ int[] arr = new int[3]; try { arr[0] = 1; arr[1] = 2; arr[3] = 3;// 해당 위치에서 예외 발생 for(int n : a..
package org.joonzis.ex; import java.util.Scanner; /* * ArithmeticException * 정수를 0으로 나눌 경우 예외 발생 */ public class Ex01_exception { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1, num2; try { System.out.print("정수1 입력 >> "); num1 = sc.nextInt(); System.out.print("정수2 입력 >> "); num2 = sc.nextInt();// 0 입력 시 System.out.println("덧셈 결과 >> " + (num1 + num2)); Syst..
Q1. Test01.java 스마트폰 => 전화기 + 컴퓨터 class Phone 필드 : String owner 메소드 : Constructor, sendCall(), receiveCall() interface Computable메소드 : connectInternet(), playApp() class SmartPhone Phone 상속, Computable 구현 Q2. Test02.java interface Providable메소드: sightseeing(), leisure(), food() class KoreaTour메소드 : Providable 구현을 통해생성 class GuamTour메소드 : Providable 구현을 통해생성 class TourGuide필드 : Providable tour 메소..