Java
-
[Camel][Java] 예외처리 (feat. try~catch문)Java/개념 정리 2020. 2. 24. 17:37
예외처리란? Java에서는 프로그램 실행 중 발생하는 예외적인 상황을 처리하기위해 별도의 문법을 제공하고 있습니다. 이러한 예외상황이란 컴파일 중에 발생하는 문법적인 에러를 제외한 프로그램 실행 도중에 발생하는 문제 상황을 말합니다. 단적인 예를 하나 들면 입력값으로 자연수를 받고 싶은데 -3과 같은 정수가 입력되는 상황을 의미합니다. 우리는 종종 예외를 처리하기 위해 우리는 if문을 사용해왔습니다. 하지만 if문의 경우 예외처리 이외의 용도로도 사용이 되기때문에 해당 if문이 예외처리를 위한 코드인지 구별하기가 어렵습니다. 이러한 불편함을 해결하기 위해 try~catch 기반의 예외처리 방식이 사용되는 것입니다. try ~ catch문 인터넷 상에서 Java로 작성된 코드를 보다가 보면 try~catc..
-
[Camel][Java] Inner , Local , Anonymous 클래스란?Java/개념 정리 2020. 2. 24. 15:53
Inner 클래스란? class Outer1 { class Inner { . . . } } class Outer2 { static class Nested { . . . } } Java에서는 클래스 내부에 다른 클래스를 정의할 수 있습니다. 바깥쪽에 정의된 클래스를 Outer 클래스라고 하고 내부에 정의된 클래스를 Inner 클래스라고 합니다. Inner 클래스의 경우 static으로 선언이 가능하고 이를 가리켜 Static Inner 클래스 또는 Nested 클래스라고 합니다. Nested 클래스는 클래스 내부에 정의되는 클래스이기 때문에 private으로 정의될 경우 외부에서 인스턴스 생성이 불가능하게 됩니다. Inner 클래스의 특징 Inner 클래스의 특징은 다음과 같습니다. 첫 번째, Inner클..
-
[Camel][Java] Abstract Class (추상클래스)와 Interface(인터페이스)Java/개념 정리 2020. 2. 21. 17:18
abstract 클래스란? abstract 클래스를 해석하면 추상클래스입니다. 추상이라는 말은 한국말이라도 참 어렵죠? 좀더 이해하기 쉽게 해석하면 abstract 클래스는 완전하지 않은 클래스라고 할 수 있습니다. 완전하지 않다는 것은 인스턴스의 생성이 불가능하기 때문이라고 할 수 있습니다. 좀 더 빠른 이해를 돕기 위해 아래의 코드를 가지고 설명하겠습니다. class Animal () { private String kind; public void showKind() { System.out.println("Kind : " + kind); } public void showBase() { } } 다음과 같이 Animal 클래스를 정의했습니다. 이 Animal 클래스의 showBase 메소드를 확인하면 내용..
-
[Camel][Java] Object 클래스에 대해서Java/개념 정리 2020. 2. 21. 15:45
java.lang 패키지의 최상위 클래스인 Object클래스 Object 클래스는 java.lang 패키지의 최상위 클래스 입니다. java.lang 패키지는 Java에서 가장 자주 사용되는 패키지로서 따로 import를 해주지 않아도 자동으로 import가 됩니다. Object 클래스란? Object 클래스는 Java에서 사용할 수 있는 API의 모든 클래스와 사용자가 정의한 클래스의 최상의 클래스라고 말할 수 있습니다. 이말은 즉 Java에서 모든 클래스는 Object 클래스를 상속 받는다는 것입니다. 그렇기 때문에 어떤 클래스에서든 Object 클래스의 변수와 메소드를 사용가능하게 됩니다. Object 클래스의 메소드는 아래의 표에서 확인할 수 있습니다. 또한, https://docs.oracle...
-
[Camel][Java] 상속을 위한 관계 (IS-A, HAS-A) 그리고 오버라이딩Java/개념 정리 2020. 2. 20. 17:03
상속을 위한 관계 상속을 위한 관계? 그냥 extends 쓰고 상속받을 클래스를 쓰면 되는거 아닌가? 저는 처음 상속을 배웠을 때 위와 같이 단순하게 생각했습니다. 하지만 상속 관계를 구성하기 위해서는 조건이 필요하다는 사실! 물론 조건을 충족하지 않아도 상속관계를 구현 할 수는 있지만 조건을 충족 시키지 못하면 상속을 하는 의미가 없다는 뜻입니다. 이러한 상속을 위한 조건은 대표적으로 IS-A 관계가 있습니다. 또한 HAS-A 관계 역시 상속의 조건이 될 수 있습니다. IS-A 관계 그렇다면 IS-A 관계란 무엇일까? 아주 간단합니다. 간단한 예를 들어 설명하겠습니다. ( 전기자전거, 자전거), (무선마우스, 마우스) 혹시 눈치 채셨나요? 좀 더 직관적으로 설명하자면 (전기자전거 IS A 자전거), (..
-
[Camel][Java] 상속과 접근제어 지시자 (private, protected, public)Java/개념 정리 2020. 2. 20. 15:20
이번 포스팅에서는 접근제어 지시자에 대한 포스팅입니다. 접근제어 지시자 접근제어 지시자란 말 그대로 접근의 허용범위를 제한하는 용도로 사용되는 지시자 입니다. Java에서 접근제어 지시자는 defualt를 포함해 private, protected, public 총 4가지가 있습니다. 설명에 앞서 접근지시자별 접근허용범위는 아래 표를 확인하시면 됩니다. 접근제어지시자 Class 내부 동일 Package 상속받은 Class 이외의 나머지 영역 private O X X X default O O X X protected O O O X public O O O O private 접근제어 지시자 private는 위에서 확인할 수 있듯이 클래스 내부에서만 접근 가능하도록 하는 지시자 입니다. 동일 패키지에 있더라도 p..
-
[Camel][Java] Java에서의 상속(Inheritance)이란? (feat. super 키워드)Java/개념 정리 2020. 2. 19. 20:46
상속(Inheritance)이란? 상속이란 객체지향 프로그래밍에서 굉장히 중요한 부분입니다. 대부분의 처음 Java를 공부하는 사람은 상속을 재활용의 목적으로 이해하는 경우가 많습니다. 하지만 Java에서 상속이 지니는 의미는 재활용 그 이상이라고 할 수 있습니다. 결론부터 말하자면 상속은 기존의 클래스를 재활용해 새로운 클래스를 작성하기위한 수단입니다. 우리는 상속을 통해 연관성이 있는 일련의 클래스에 대한 공통의 규칙을 정할 수 있습니다. 상속은 기존에 정의된 클래스에 메소드와 변수를 추가해 새로운 클래스를 정의하는 것입니다. 즉 재활용+@ 라고 할 수 있는 것입니다. 상속을 사용하기 위해서는 우리는 앞으로 extends라는 키워드를 사용할 것입니다. class Animal { private Stri..
-
[Camel][Java] Multi-Dimensional Array(다차원배열) feat. 2차원배열Java/개념 정리 2020. 2. 19. 19:19
다차원배열(Multi-Dimensional Array)이란? 다차원배열이란 2차원 이상의 배열을 말합니다. 그러나 일반적으로 2차원을 넘어서는 3차원,4차원 배열을 잘 사용하지 않습니다. 2차원 배열 2차원 배열은 둘 이상의 변수가 2차원의 형태로 존재하는 배열입니다. 2차원 배열 역시 인스턴스를 기반으로 구성됩니다. 이러한 2차원의 배열의 생성은 다음과 같습니다. int [][] arr = new int[3][4]; arr[0][0] arr[0][1] arr[0][2] arr[0][3] arr[1][0] arr[1][1] arr[1][2] arr[1][3] arr[2][0] arr[2][1] arr[2][2] arr[2][3] 위에 생성된 배열은 세로의 길이가 3, 가로의 길이가 4인 2차원 배열입니다..