제네릭 (1)
·
Java
제네릭이 필요한 이유public class IntegerBox { private Integer value; public void set(Integer value) { this.value = value; } public Integer get() { return value; }}public class StringBox { private String value; public String get() { return value; } public void set(String value) { this.value = value; }} 숫자, 문자열을 보관하고 꺼낼 수 있는 단순한 클래스이다.package mid2.g..
예외 처리 (3)
·
Java
예외 계층 예외를 세분화 해보자.  우리는 이전에 NetworkClientException 예외 클래스 하나로만 예외를 관리했다. 단순히 오류 코드로 예외를 분류 한 것이다.예외를 계층화 시켜서 다양하게 만들면 더 세밀하게 예외를 처리할 수 있다.package exception.ex3.exception;public class ConnectExceptionV3 extends NetworkClientExceptionV3 { private final String address; public ConnectExceptionV3(String address, String message) { super(message); this.address = address; } pub..
예외 처리 (2)
·
Java
이전에 시간에 했던 예제를 사용해 예외처리를 도입해보자 package exception.ex2;public class NetworkClientExceptionV2 extends Exception { private String errorCode; public NetworkClientExceptionV2(String errorCode, String message) { super(message); this.errorCode = errorCode; } public String getErrorCode() { return errorCode; }} 이전에는 error code를 반환값으로 리턴해서, 로그를 확인할 수 있었는데, 이번엔 어떤 종류의 오류가..
예외 처리 (1)
·
Java
예외처리가 필요한 이유 예제 프로그램 내용 : 사용자의 입력을 받고, 입력 받은 문자를 외부 서버에 전송하는 프로그램- 프로그램의 구성(Main) -- sendMessage(data) --> (NetworkService) -- connect,send,disconnect --> (NetworkClient)package exception.ex1;public class NetworkServiceV1_3 { public void sendMessage(String data) { String address = "http://example.com"; NetworkClientV1 client = new NetworkClientV1(address); client.initErro..
중첩 클래스, 내부 클래스 (Local, Anonymous)
·
Java
지역 클래스는 내부 클래스의 종류 중 하나이다. 따라서 내부 클래스의 특징을 그대로 가진다.지역 클래스는 지역변수와 같이 코드 블럭 안에서 정의된다. package nested.local;public class LocalOuterV1 { private int outInstanceVar = 3; public void process(int paramVar) { int localVar = 1; // 지역클래스 선언 class LocalPrinter { int value = 0; public void printData() { System.out.println("value = " + value); ..
중첩 클래스, 내부 클래스 (Static, Inner)
·
Java
클래스 안에 클래스를 중첩해서 정의할 수 있는데 이것을 중첩 클래스라 한다. 중첩 클래스에도 종류가 있다. 총 4가지가 있는데 크게 2가지로 분류한다.1. 정적 중첩 클래스 2. 내부 클래스 종류 - 내부 클래스 - 지역 클래스 - 익명 클래스 중첩 클래스를 정의하는 위치는 변수의 선언 위치와 같다.- 정적 중첩 클래스 -> 정적 변수와 같은 위치- 내부 클래스 -> 인스턴스 변수와 같은 위치- 지역 클래스 -> 지역 변수와 같은 위치 중첩과 내부의 차이는 무엇일까?- 중첩(Nested): 어떤 다른 것이 내부에 위치하거나 포함되는 구조적인 관계 (즉 내 안에 있지만 내 것이 아닌 것, 큰 나무 상자안에 전혀 다른 나무 상자를 넣는다.)- 내부(Inner): 나의 내부에 있는 나를 구성하는 요소(나의 심..