백엔드/자바
-
예외 선언하기백엔드/자바 2020. 8. 11. 04:30
예외 선언하기 메서드에 예외를 선언하는 경우가 있다. 이런 경우는 이 예외를 처리하려는 것이 아니라 이 메서드를 호출할 경우 예외에 조심하라는 뜻이다. 즉 이 메서드를 호출하려면 선언된 예외를 처리할 수 있는 try - catch 문을 작성하라는 것이다. 예외 선언하는 법 일반 메서드를 작성할 때 파라미터 뒤에 'throws'를 붙이고 예외 처리해줄 예외들을 적어준다. 각 예외들은 쉼표를 기준으로 여러개를 적어줄 수 있다. 접근제어자 + 반환값 + 메서드명 ( ) throws Exception1, Exception2, Exception3....{ }; 예외 선언한 메서드 사용법 예외를 선언한 메서드를 만드는 이유는 해당 메서드 호출시 예외를 신경써서 처리하라는 뜻이다. 즉 이거 호출하려면 try - ca..
-
예외 일으키기백엔드/자바 2020. 8. 11. 03:21
예외 일으키기 예외를 처리해서 문제없이 넘어가는 try - catch 방식도 있다. 하지만 반대로 예외를 일부러 일으킬 수도 있다. Exception + 참조변수명 = new Exeption( String 삽입 가능); throw 참조변수명; public static void main(String[] args) { try { Exception A = new Exception("예외를 고의로 발생시킵니다."); throw A; } catch (Exception a) { System.out.println(a.getMessage()); a.printStackTrace(); } } 고의로 예외를 발생시킬 때 주의할 점은 이 고의로 만든 예외조차 try-catch 문에 넣어줘야 한다는 것이다. try-catch ..
-
예외 처리하기 try - catch 문백엔드/자바 2020. 8. 11. 02:58
예외 처리하는 이유 예외는 프로그래머가 처리해서 비정상적 종료를 막고 정상적인 실행상태 유지를 위해 꼭 필요하다. try - catch 문의 구조는 다음과 같다. try를 쓰고 대괄호 안에 예외가 일어날 수 있는 문장을 삽입한다. catch에는 예외가 발생하면 대신 처리할 문장을 입력하면 된다. try는 한번이지만, catch는 여러번 중첩해서도 사용이 가능하다. try { 예외가 발생할 수 있는 문장 삽입 } catch ( 일어날 수 있는 예상되는 예외 + 참조변수) { 괄호 안의 예외가 발생하면 대신 이를 처리할 문장 입력 } public static void main(String[] args) try { // try + { 예외가 날 수 있는 문장 대괄호 안에 입력 } int result; for(..
-
오류와 예외(Error, exception)백엔드/자바 2020. 8. 11. 01:54
오류 프로그램을 실행하면서 어떤 원인에 의해 오작동 또는 비정상적으로 종료되는 경우 이를 에러(오류)라고 부른다. 이러한 에러는 크게 3가지로 나뉜다. ◎ 컴파일 에러: 컴파일 시에 발생하는 에러 ◎ 런타임 에러: 컴파일 단계는 통과했으나 실행시 발생하는 에러 ◎ 논리적 에러: 실행은 되지만, 의도와 다르게 작동하는 것 자바는 이러한 비정상적인 작동, 오작동을 에러(Error)과 예외(Exception)으로 구분했다. 에러(Error)와 예외(Exception)의 차이점 ◎ 에러는 프로그램 코드에 의해 수습될 수 없는 심각한 오류 ex) 스택 오버플로우, 메모리 부족 등 ◎ 예외는 발생하더라도 수습이 가능한 에러보다 낮은 단계의 오류를 말함 ◎ 에러는 발생시 비정상적인 종료를 막을 수 없지만, 예외는 적..
-
익명 클래스(anonymous class)백엔드/자바 2020. 8. 11. 01:01
익명 클래스란? 클래스의 선언과 객체 생성과 동시에 단 한번 사용할 수 있게 만든 클래스를 말한다. 그래서 단 한번만 사용되고 오직 하나의 객체만 생성가능한 일회용 클래스이다. 이름이 없어서 생성자를 가질 수 없고 단 하나의 클래스를 상속받거나 하나의 인터페이스만 구현 가능하다. 익명 클래스의 구조는 다음과 같다. 인터페이스 자료형 + 참조변수명 = new + 인터페이스 자료형 ( ) + { 인터페이스의 메서드 오버라이딩 } interface Anony{ // 'Anony' 인터페이스 선언 void test(); // 'test' 추상 메서드 선언 } class Normal_Class{ // 'Normal_Class' 일반 클래스 선언 public void test2(){}; // 'test2' 일반 메..
-
추상클래스, 인터페이스와 다형성백엔드/자바 2020. 8. 7. 04:27
다형성이란? 일반 클래스의 상속 관계처럼 다형성이란 '다형성이란 여러 형태를 가질 수 있는 성질'을 말한다. 일반 클래스들의 상속 과정의 다형성의 포인트는 다음과 같았다. ◎ "상속 관계에서 부모 클래스가 자식 클래스들을 대표 한다" 부모 클래스를 자료 타입으로 하는 참조 변수가 자손 클래스의 인스턴스를 가질 수 있다는 것이다. 추상 클래스, 인터페이스와 다형성 일반 클래스 상속과 다형성의 관계와 같이 추상클래스, 인터페이스도 그와 동일한 구조를 갖는다. 즉 추상클래스, 인터페이스를 상속한 자손 클래스의 인스턴스의 주소값을 추상클래스, 인터페이스를 자료형으로 하는 참조 변수가 참조할 수 있다는 것이다. interface Human{ // 인터페이스 'Human' 선언 String me(); // 반환값이..
-
인터페이스 (interface)백엔드/자바 2020. 8. 7. 03:38
인터페이스란? 인터페이스는 일종의 추상 클래스로서 일반적인 추상 클래스보다 추상화가 심하다. 추상 클래스는 추상 메서드 뿐 아니라 일반 메서드, 일반 멤버 변수를 가질 수 있다. 하지만 인터페이스는 추상 메서드와 상수만을 가질 수 있고 그 외 어떤 요소도 허용치 않는다. 사람의 얼굴로 치면 인터페이스는 뼈대, 추상 클래스는 피부, 일반 클래스는 눈코입이라고 할 수 있다. 그만큼 추상 클래스와 더불어 다른 클래스에 도움을 주는 목적으로 만들어진다. 인터페이스의 사용 이유 인터페이스의 사용 이유는 추상 클래스를 이용하는 이유와 동일하다. 추상클래스나 인터페이스나 모두 그 자체로는 특별한 기능을 하지 않는다. 하지만 한 가지 프로그램을 여러명이 짤 때 참고하고 쓸 수 있는 가이드의 역할을 한다. 그리고 인터페..
-
추상 클래스 (abstract class)백엔드/자바 2020. 8. 6. 18:50
추상클래스란? 추상 메서드를 가지고 있는 클래스를 말한다. 일반 클래스명 앞에 astract만 붙여주면 추상클래스로서 선언이 가능하다. 아래와 같은 경우 사용할 수 없다. abstract class Animal{ // abstract + class + 클래스명 abstract void bark(); // abstract 메서드 } 아래와 같이 추상 클래스를 상속하면 추상 클래스의 멤버변수와 메서드를 쓸 수 있다. class test2 extends test{ // 추상 클래스 'test'를 상속 받아 선언한 'test2' int test_method(int a){ // 추상 클래스의 추상 메서드 'test_method'를 오버라이딩 return a; } } 추상 클래스와 일반 클래스의 차이 기본적으로 추..