전체 글 176

예외 처리

예외 클래스들 -모든 예외 클래스의 최상위 클래스는 Exception 클래스 -자바에서는 다양한 예외들에 대해 그 처리를 위한 클래스를 제공한다. -Arithmetic Exception: 정수를 0으로 나눈 경우 발생 -NullPointerException: 초기화 되지 않은 Object를 사용하는 경우 Dog d = null; System.out.println(dog); -ArrayIndexOutOfBoundsException: 배열의 크기를 넘어선 위치를 참조하는 경우 -FileNotFoundException: 참조하는 파일이 지정된 위치에 존재하지 않는 경우 -ClassNotFoundException: 클래스가 로드되지 않은 경우 -InterruptedException: Thread.sleep(),..

+24 라이브러리

Sawon 객체 생성!! 사원의 이름은 김입니다. name = 김 Sawon 객체 메모리 해제 class Sawon { String name; // null public Sawon(String name) // 초기화 { this.name = name; System.out.println("Sawon 객체 생성!!"); } public void display() { System.out.println("name = " + name); } @Override public String toString() { return "사원의 이름은 " + name + "입니다."; } @Override protected void finalize() throws Throwable { System.out.println("Sawon..

수업 2022.06.07

+24 예외처리(throw, throws, finally)

throw -많이 사용하지 않음(테스트 용) -임의로 발생 throw new 예외처리 생성자() -다음 줄에는 코딩 할 수 없음 (예: throw new Exception()) throws -예외 선언하기 > 라이브러리에서 사용 -예외에 대한 예측이 가능(어떤 에러가 발생할 지 알고 코딩) -메서드 내에서 예외처리를 하지 않아도 됨 예외처리의 단점 -소스코딩, 복잡한 소스 방지 -복구 할 수 없음(시스템에 의해 처리 됨) 사용법 -메서드 뒤에 붙인다. public void display() throws 예외처리 종류 -여러 개 선언 할 수 있음 public void disp() throws Exception, SQLException... finally -필요시에만 사용(서버, 파일, 데이터베이스) -tr..

수업 2022.06.07

인터페이스

인터페이스란? -모든 메서드가 추상 메서드로 선언 됨 public abstract -모든 변수는 상수로 선언 됨 public static final interface 인터페이스이름 { public static final float pi = 3.14F; public void makeSth(); } 인터페이스 정의와 구현 10+0=10 10-0=10 10*0=0 10/0=-99999999 public interface Calc { double PI = 3.14; int ERROR = -99999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1, ..

추상 클래스

추상 클래스 구현하기 -메서드에 구현 코드가 없으면 abstract로 선언 -abstract로 선언된 메서드를 가진 클래스는 abstract로 선언 -모든 메서드가 구현 된 클래스라도 abstract로 선언되면 추상 클래스로 인스턴스화 할 수 없음 -추상 클래스에서 추상 메서드는 하위 클래스가 상속해서 구현 -추상 클래스 내의 추상 메서드 : 하위 클래스가 구현해야 하는 메서드 -추상 클래스 내의 구현 된 메서드 : 하위 클래스가 공통으로 사용하는 메서드 (필요에 따라 하위 클래스에 재정의 함) Desktop display Desktop typing Desktop turnOff public class ComputerTest { public static void main(String[] args) { Co..

+23 내부클래스, 예외처리

p403 - 424 내부 클래스 p403 1. ㅡㅡㅡㅡㅡㅡ 인스턴스 멤버 ㅡㅡㅡㅡㅡㅡ 10 Inner: print() Call: name = 김가가 ㅡㅡㅡㅡㅡㅡ static 멤버 ㅡㅡㅡㅡㅡㅡ Inner:print() Call... ㅡㅡㅡㅡㅡㅡ 지역 클래스 ㅡㅡㅡㅡㅡㅡ 지역 클래스: Inner: print() Call... ㅡㅡㅡㅡㅡㅡ 익명의 클래스 ㅡㅡㅡㅡㅡㅡ Inner4: print() Call... Outer4에서 print() 오버라이딩... class Outer { private String name = "김가가"; class Inner { int a = 10; public void print() { System.out.println("Inner: print() Call: name = " + na..

수업 2022.06.03

인터페이스

인터페이스는 일종의 추상클래스다. 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외는 없다. 추상 클래스를 부분적으로 완성된 미완성 설계도라고 한다면, 인터페이스는 구현된 것이 아무 것도 없고 밑그림만 그린 기본 설계도라 할 수 있다. 인터페이스도 추상클래스처럼 완성되지 않은 불완전한 것이기 때문에 그 자체만으로 사용되기 보다는 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다. 인터페이스 작성 인터페이스 작성은 클래스 작성과 같다. 다만 키워드로 class 대신 interface를 사용하는 것만 다르다. interface에도 클래스와 같이..

Java/정석 2022.06.03

추상 클래스

추상 클래스 미완성 메서드(추상 메서드)를 포함한 클래스를 뜻한다. 미완성 설계도로 완성된 작품을 만들 수 없 듯이 추상 클래스로 인스턴스를 생성할 수 없다. 추상 클래스는 상속을 통해서 child 클래스에 의해서만 완성된다. 추상 클래스 자체로는 클래스로서 역할을 다 못하지만, 새로운 클래스를 작성하는데 바탕이 되는 parent 클래스로서 중요한 의미를 갖는다. 새 클래스를 작성할 때 아무 것도 없는 상태에서 시작하는 것보다는 완전하지는 못 하더라도 어느 정도 틀을 갖춘 상태에서 시작하는 게 나으니. TV도 여러 종류 모델이 있지만 설계도는 거의 비슷하다. 이 들의 공통 부분만을 그린 미완성 설계도를 만들어 놓고, 이 걸 이용해 각각의 설계도를 완성하는 게 더 효율적이다. 추상 클래스 사용법 abstr..

Java/정석 2022.06.02

+22 super, this, 형변환, 추상클래스, 인터페이스

p375-387, 390 super, this Super: 생성자 Call... Sub: 생성자 Call... Super.a = 100 Sub.a = 200 Super: display() Call.. Sub: display() Call... class Super // extends Object { int a = 100; public Super() { System.out.println("Super: 생성자 Call..."); } public void display() { System.out.println("Super: display() Call.."); } } class Sub extends Super { int a = 200; public Sub() { super(); // 첫 줄에 사용 → 사용 빈도 ..

수업 2022.06.02

11721: substring()

1. 문제 문자열 한 줄로 입력 받은 다음 해당 문자열을 열 글자 단위로 끊어서 출력한다. 마지막으로 끊어지는 문자열이 10미만이면 그것만 출력한다. 2. 풀이 string() 메서드 사용한다. 마지막 문자열이 열 글자 미만인 경우의 핸들링 때문에 조건문을 통해 반복문 반복 횟수, 몇 번째 문자열까지 끊어올 지 다르게 돌아가도록 한다. 3. 코드 public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = ""; int cnt; str = sc.nextLine(); if(str.length() % 10 == 0) cnt = str.length() / 10; else cnt = str.length() / ..

Java/백준 2022.06.01