Java/개념 정리
-
[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차원 배열입니다..
-
[Camel][Java] Array ( 배열 )Java/개념 정리 2020. 2. 19. 18:25
배열(Array)은 왜 사용할까? 우리가 배열을 사용하는 이유는 간단합니다. 다수의 변수를 선언할 때의 편의성을 위해서 입니다. 선언해야 하는 변수가 적다면 물론 배열을 사용할 필요는 없습니다. 하지만 예를 들어 한 학교 학생에 대한 수십, 수백개의 변수를 생성해야한다면 배열의 효율성을 확인할 수 있을 것입니다. 만약 300개의 변수의 값을 전부 변경하고 싶을 때 배열을 사용하지 않으면 엄청난 줄의 코드를 작성해야 할 것입니다. 하지만 배열을 사용하면 반복문을 이용해서 동일한 코드를 적용할 수 있게 됨으로써 코드작성의 효율을 높일 수 있습니다. 배열의 생성 배열도 역시 문자열처럼 변수와 메소드로 구성된 인스턴스입니다. 그렇다면 이제 배열을 생성하는 코드를 살펴봅시다. int[] arr = new int[..
-
[Camel][Java] Console Input - 콘솔 입력 (Scanner)Java/개념 정리 2020. 2. 19. 17:51
과거에 Java에서 콘솔 입력은 다소 복잡한 코드 조합을 통해서 이루어 졌다고 합니다. BufferedReader bufread = new BufferedReader( new InputStreamReader(System.in) ); String str = bufread.readline(); int num = Integer.parseInt(str); 위의 정수를 입력받는 코드를 이해하기 위해서는 Wrapper 클래스, Java I/O, String 처리, 예외처리와 같은 처음 Java를 접하는 사람에게는 다소 복잡한 내용까지 숙지해야 했습니다. 하지만 Java는 5.0버전 이후로 다음과 같은 코드로 정수를 입력 받을 수 있게 되었습니다. Scanner sc = new Scanner(System.in); i..
-
[Camel][Java] StringBuilder와 StringBuffer 클래스Java/개념 정리 2020. 2. 19. 15:13
StringBuilder & StringBuffer 클래스 이전 포스팅에서 다뤘던 String 클래스는 값의 변경이 불가능한 문자열의 표현을 위한 클래스였습니다. 그렇다면 문자열은 값의 변경을 할 수 있는 방법이 정말 없는 것일까? 이번 포스팅에서 다룰 StringBuilder와 StringBuffer 클래스가 바로 값의 변경이 가능한 문자열의 표현을 위한 클래스입니다. 하지만 StringBuffer와 StringBuilder 의 인스턴스는 문자열이라 하지 않는다는 점! StringBuilder 클래스란? StringBuilder 클래스는 문자열의 저장 및 변경을 위한 메모리 공간을 내부에 가지고 있습니다. 이 메모리 공간은 크기가 자동으로 조절된다는 특징이 있습니다. 하지만 크기를 수동으로 조절하고 싶..