본문 바로가기

웹 개발/Java

(43)
[Web_JAVA] 27 ● API(Application Programming Interface) - 개발에 필요한 라이브러리들의 집합 - 다른 개발자들이 만들어 놓은 소스코드 1. 내부 API - JDK 설치 시 제공해주는 기본 API - API 사이트 : docs.oracle.com/javase 2. 외부 API - 다른 개발자들이 개발한 패키지 및 클래스들을 의미한다. - 보통 JAR 파일로 배포하며 자바 프로젝트의 build path에 추가하여 사용할 수 있다. ● API 주석(어노테이션(@) 주석) /** @ */ ● JAR 파일로 배포하기 1. 배포할 클래스 또는 패키지 우클릭 후 Export 클릭 2. JAVA/JAR file 선택 후 Next 클릭 3. destination을 원하는 경로로 선택 4. Export ..
[Web_JAVA] 26 ● 예외 처리 - 에러 : 심각한 오류 - 예외 : 덜 심각한 오류 ● 예외 처리 문법 try{ 예외가 발생할 수 있는 문장 } catch(예외이름 객체명) { // 예외 발생 시 해당 예외 필드가 메모리에 할당된다. // 할당된 주소를 선언한 객체로 받지 못한다면 프로그램이 강제 종료된다. // 이를 막기 위해 동일한 예외타입의 객체를 선언하여 catch문 안의 문장으로 대체되도록 구현한다. 예외 발생 시 실행할 문장 } catch(예외이름 객체명) { 예외 발생 시 실행할 문장 } ... } finally { 예외 발생 여부에 상관없이 무조건 실행할 문장 ※ 외부 장치와 연결했을 경우 다시 닫을 때 주로 사용한다. } (ex) catch(ArrayIndexOutOfBoundsException e) {..
[Web_JAVA] 25 실습(람다식) ※ 문제 여러 개의 정수를 입력받아서 알맞는 덧셈, 뺄셈 결과를 확인하는 애플리케이션 제작 입력 예) 7 + 35 - 9 출력 예) 33 입력 예) -9 + 8 + 10 출력 예) 9 - 사용자가 정상적으로만 입력한다는 가정 하에 구현하도록 한다. 1. 두 정수를 전달받은 후 int로 리턴하는 calc 추상메소드 선언(함수형 인터페이스 제작) 2. 두 정수의 덧셈, 뺄셈을 구해주는 함수형 인터페이스를 리턴하는 static 메소드 선언(람다식 리턴) 3. 전체 식을 전달받은 후 String[]로 리턴하는 getOpers 추상메소드 선언(함수형 인터페이스 제작) 4. main 메소드에서 getOpers를 람다식으로 구현 5. 첫번째 정수가 음수일 경우 오류 해결하기 6. split()사용 시 ..
[Web_JAVA] 24 ● 함수형 인터페이스(Functional interface) - 인터페이스 중 추상 메소드를 하나만 가지고 있는 인터페이스 - @FunctionalInterface를 인터페이스 위에 작성하여 단 하나의 추상메소드만 선언할 수 있도록 제한해야한다. ● 람다식(Lambda Expression) - 이름이 없는 메소드로서 변수처럼 사용이 가능하며, 매개변수로 전달이 가능하다. - 함수형 인터페이스는 추상 메소드가 한 개만 선언되기 때문에 메소드 이름이 필요없다. - 따라서 람다식을 익명 메소드(Anonymous Method)라고도 부른다. ● 람다식 문법 1. (매개변수 형식 나열, ...) -> 리턴값; (ex) (a, b) 2. (매개변수 형식 나열, ...) -> {2개 이상의 문장 작성; return ..
[Web_JAVA] 23 ● 모호성(ambiguity) - 하나의 자식이 여러 부모를 상속받을 때 부모 필드에 동일한 이름의 필드가 있다면 어떤 부모의 필드인지 알 수 없다. 이를 모호성이라고 부른다. ● 모호성 해결 방법 1. 방법1 - 상황 : 두 개의 인터페이스 내에 같은 이름과 매개변수의 메소드가 선언되어 있다. - 해결 : 자식 클래스에서 재정의하여 사용한다. 2. 방법2 - 상황 : 부모 클래스의 메소드와 인터페이스의 디폴트 메소드의 이름, 매개변수가 같다. - 해결 : 부모 클래스의 메소드가 사용된다. ※ 인터페이스도 타입이다. ※ 인터페이스는 부모이며, 구현한 클래스가 자식이 된다. ● 마커 인터페이스(Marker Interface) - 클래스들을 그룹화하기 위한 목적으로 사용한다. - 인터페이스는 지정한 클래스의..
[Web_JAVA] 22 ● 추상 클래스 - 필드 안에 구현이 안된 메소드가 선언되어 있는 클래스를 추상 클래스라고 한다. - 이 때 구현되지 않은 메소드를 추상 메소드라고 부른다. - 반드시 재정의를 통해 구현해야 메모리에 할당되기 때문에 "강제성"을 부여하기 위해서 추상 메소드로 선언한다. ※ 일반 메소드도 선언 가능하다. ● 추상 클래스 선언 abstract class 클래스명 { abstract 리턴타입 메소드명(자료형 매개변수, ...); } ● 인터페이스 : 틀 - 추상 클래스를 고도화 시킨 문법 - 상수와 추상메소드만 존재한다. - 구현은 인터페이스를 지정한 클래스에서 진행하고, 인터페이스를 다른 클래스에 지정할 때에는 implements 키워드를 사용한다. ● 추상 클래스와 인터페이스 간의 관계 - 인터페이스를 클..
[Web_JAVA] 21 실습(정리) - 은행 프로그램 1. 부모 클래스(Bank.java) 작성하기 ※ 작성 위치 package bank; public class Bank { // 작성 } - 필요한 변수 선언하기 // 모든 은행의 고객을 관리하는 DB // ex) 3곳의 은행별로 100명의 회원이 존재한다. // 다른 은행의 정보도 공유해야한다.(ex - 블록체인) // 그러므로 정적변수를 사용해야 한다.(객체 간 공유) public static Bank[][] banks = new Bank[3][100]; // 각 은행 별 고객 수 // 길동 - n명, 신한 - n명, 국민 - n명 이므로 일차원 배열을 사용한다. public static int[] arCount = new int[banks.length]; // 예금주, ..
[Web_JAVA] 20 ● Casting 1. up casting - 자식 값을 부모 타입으로 형변환 2. down casting - up casting된 객체를 자식 타입으로 형변환 ※ 부모 값을 자식 타입으로 형변환 시 오류 발생 ● Casting을 사용하는 이유 - 모든 자식 값을 전달받기 위해서는 동일한 타입의 저장공간으로 받아야 한다. - 하지만 자식끼리는 서로 타입이 다르기 때문에 한 번에 전달받을 수가 없다. - 이 때 up casting을 사용하면, 모든 자식이 부모 타입이므로 하나의 저장공간에 모든 자식을 받을 수 있게 된다. - 만약 up casting으로 자식 값을 전달받았다면, 자식에서 새롭게 구현한 기능들은 사용할 수 없기 때문에 down casting을 통해서 복구하여 사용한다. 실습(Casting(1..