출처) 코뮤니티 모각코 "JAVA를 자바" 과정

 

1. 예외처리가 필요할 때

오류에 부딪힐 때 오류를 없애는 것이 가장 좋지만, 모두 없앨 수 없다면 그것을 제대로 처리하는 것도 중요하다.

오류를 무시할 때도 있고, 적절한 조치를 취해야 할 때도 있다.

 

그 때 사용할 수 있는 것이 "try, catch, throw" 등이다.

 

2. try, catch, finally

 

1) try~catch

 

int[] value = new int[3];

value[3] = 10;

 

위 코드를 실행하면 ArrayIndexOutOfBoundsException 오류가 발생한다.

 

오류 발생 시 "오류 발생" 이라는 문장이 출력되도록 코드를 짜면 아래와 같다.

 

int[] value = new int[3];

 

try {

    value[3] = 10;

} catch (ArrayIndexOutOfBoundsException e) {

    System.out.println("오류 발생");

}

 

위 코드를 실행하면 오류 발생 이라는 문장이 출력된다.

이처럼 예외 처리는 try~catch 문으로 할 수 있다.

 

try {
	실행문
} catch(예외1) {
	예외1 발생 시 실행문
} catch(예외2) {
	예외2 발생 시 실행문
}

 

catch (ArrayIndexOutOfBoundsException e) {

    System.out.println("오류 발생");

}

 

이처럼 괄호 안에는 예외처리 할 오류의 형식과 오류를 칭할 이름(e)을 적는다.

 

2) finally

 

예외가 발생했을 때에도 무조건 실행하고 싶은 코드가 있을 경우 사용하는 것이 finally이다.

예를 들어, 나눗셈에서 0으로 숫자를 나누면 ArithmeticException 오류이다.

 

int num;try {    num = 4 / 0;} cath(ArithmeticException e) {    System.out.println("오류 발생");    num = -1;} finally {    System.out.println("무조건 실행");}

 

System.out.println(num);

 

위 코드는 ArithmeticException 오류가 발생했을 때 오류 발생 문장을 출력하고 num 변수에 -1을 저장한다.또한, 오류와 관계없이 무조건 실행이 출력된다.

 

실행결과는 위와 같다.

'Software > JAVA' 카테고리의 다른 글

[JAVA] Day2. 조건문, 반복문, 배열  (0) 2022.12.27
[JAVA] Day1. 자바 기초  (0) 2022.12.27
[JAVA] 객체지향  (0) 2021.07.22
[JAVA] 배열  (0) 2021.07.20
[JAVA] 스캐너로 입력받기  (0) 2021.07.15

출처) 코뮤니티 모각코 "JAVA를 자바" 과정

 

1. 객체지향 프로그래밍 (OOP) 구성요소

- 클래스, 객체, 메소드

 

1) 클래스

객체의 설계도 (틀) 

클래스를 이용해 비슷한 구성의 객체 찍어냄

 

    - 필드 : 클래스에 포함된 변수

    - 메소드 : 클래스 안에 있는 함수

    - 생성자 : 인스턴스가 처음 만들어질 때 실행될 초기화 메소드

 

* 클래스를 이용해 객체를 만드는 과정을 클래스의 인스턴스화라고 한다. 

   즉, A라는 클래스에서 만들어진 객체 = A클래스의 인스턴스

   객체 == 인스턴스

 

2) 메소드

클래스에 선언된 함수

 

public 리턴 자료형 메소드명 (입력1, 입력2 ...) {

    ...

    return 리턴값;

}

 

* public -> 메소드가 선언된 클래스 외부에서도 호출될 수 있는 메소드

 

3) 필드

클래스 안에서 선언된 변수

인스턴스로 변수에 데이터를 저장하고 저장된 데이터를 불러올 수 있음

 

2. 생성자

 

클래스가 인스턴스화 될 때 (객체가 만들어질 때) 반드시 호출되는 클래스의 구성요소

 

클래스와 동일한 이름으로 선언함

 

class Calculator {
    Calculator() {
        System.out.println("생성자 실행");
    }
}

public class Helloworld {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        System.out.println("calculator 생성 완료");
    }
}

 

이 예시는 Calculator 클래스에서 생성자가 호출될 때 "생성자 실행" 문구를 출력하도록 만들었다.

 

실행해보면 생성자 실행이 먼저 출력되고, calculator 생성 완료가 출력된다.

 

생성자는 보통 필드의 값을 초기화하기 위해 사용된다.

 

Calculator 클래스에 x, y라는 변수를 생성했다면 초기값을 설정해주어야 한다.

이렇게 초기값을 설정해 주는 것을 보통 생성자를 통해 한다.

 

class Calculator {
    int x;
    int y;
    Calculator(int a, int b) {
        this.x = a; // x에 a 대입
        this.y = b;
    }
}

 

이 예시의 경우 x, y 변수를 선언하고 생성자에서 int 자료형 데이터 2개를 받아 각각 x와 y에 저장한다.

메소드에서 입력 변수를 받는 방식과 비슷하다.

 

class Calculator {
    int x;
    int y;
    Calculator (int x, int y) {
        this.x = x;
        this.y = y;
    }
}

public class HelloWorld {
    public static void main(String[] args) {
        Calculator calculator = new Calculator(3, 5);
        System.out.println(calculator.x);
        System.out.println(calculator.y);
    }
}

 

Calculator 클래스에서 Calculator 생성자를 만들고, calculator 객체를 만들면서 생성자를 이용해 x = 3, y = 5로 초기화 한 것이다.

이를 실행하면 

3

5

이렇게 출력된다.

 

3. this 키워드

 

this는 인스턴스 (객체)를 가리키는 의미이다.

 

Calculato(int x, int y) {

    this.x = x;

    this.y = y;

 

위의 예제에서 this.x 는 인스턴스 내 필드를 가리키고, x는 입력받은 변수를 가리킨다.

'Software > JAVA' 카테고리의 다른 글

[JAVA] Day1. 자바 기초  (0) 2022.12.27
[JAVA] 예외처리  (0) 2021.07.22
[JAVA] 배열  (0) 2021.07.20
[JAVA] 스캐너로 입력받기  (0) 2021.07.15
[JAVA] 객체, 생성자, 계산기 예제  (0) 2021.01.11

+ Recent posts