전체 글14 [Java 문법] 상속 ## 상속이란 무엇인가? 상속은 Parent 와 Child로 설명을 많이 하고는 하는데 정작 사용하는 방법에만 집중하여 본질을 놓치고는 한다(이건 내얘기임;;) 상속을 사용하는 가장 큰 목적은 우리가 편하기 위함이다(잉? 뭔소리 뭔들 불편하고자 쓰겠냐...) 위에서 말한 편함은 정확히는 "코드의 중복"을 줄이기 위하여 사용한다. ## 자바 상속의 특징 자바 상속의 특징을 알기 위해서는 먼저, 상속을 어떻게 하는지 부터 시작해야겠다. 우선 Child 클래스인 Student 는 Person 클래스를 "extends" 해야 상속받을 수 있다. 자식 부분과 부모 부분은 각각의 생성자가 담당하여 책임지는데 이때, 1) extends 는 Person 하나 밖에 받을 수 없다. 2) private 으로 정의된 멤버변.. 2021. 3. 6. [Java 문법] 인터페이스 ## 인터페이스의 개념 인터페이스는 사전적으로 inter(=between) + face(면) 을 의미한다. 즉 사이에 있는 면인 접점이다. 가령, 우리가 TV를 사용한다고하면, 전원버튼, 채널버튼, 그리고 음량버튼만 알면 TV를 사용하는 데에 아무 지장이 없는 것처럼 굳이 전원버튼을 누르면, 내부에서 어떤 스위치의 상태가 변동하여 전류가 흘러 LCD가 어떻게 동작하는 지 사용자인 우리는 알 필요가 없다. ## 인터페이스를 정의하는 방법 인터페이스 정의는 간단하다. public + interface 키워드조합으로 간단히 정의할 수 있으며, 내부에는 구현이 없는 메소드(시그니처)만 정의하면 끝난다. 이때, private 으로 public 을 바꿔보면 now allowed here 이라고 나오는데, 이는 당연.. 2021. 3. 5. [Java 문법] I/O ## I/O 의 의미 I/O는 입력과 출력을 뜻한다. 입력과 출력은 무엇일까? 프로그램을 기준으로, 컴퓨터 주변장치(키보드, 마우스 등)를 통해 데이터를 수신하는 것을 입력이라하고, 프로그램이 다른 프로그램 혹은 장치로 데이터를 송신하는 것을 출력이라고 한다. ## 스트림, 버퍼, 채널의 차이는? 자바에서 흔히 IO에는 두 분류가 있다. 바로 IO와 NIO이다. IO는 Input, Output 을 의미하고, NIO는 New Input Output을 의미한다. 새로운 IO라.. 무슨 차이가 있는걸까? IO는 blocking인 반면에 NIO는 non-blocking이란 점에 차이가 있다. 실생활에 비유하여 내가 공부를 하는 경우에 blocking인 경우에는 수학공부를 하는 동안에는 열심히 수학공부만 계속 하.. 2021. 3. 4. [Java 문법] 어노테이션 오늘도 enum을 제대로 알고자 오라클 튜토리얼을 열심히 한번 읽어봅니다. Annotation(어노테이션) 은 무엇인가요? Annotations, a form of metadata, provide data about a program that is not part of the program itself. Annotations have no direct effect on the operation of the code they annotate. "Annotation은 프로그램의 일부가 아닌, 프로그램에 대한 정보를 제공하는 일종의 메타데이터이다. 어노테이션된 코드의 동작에는 직접적인 영향을 끼치지 않는다" Annotation(어노테이션) 은 왜 쓰나요? 1) 컴파일러에게 정보(에러 감지 혹은 컴파일러 경고에.. 2021. 2. 6. [Java 문법] enum 오늘도 enum을 제대로 알고자 오라클 공식문서를 열심히 한번 읽어봅니다. # enum 개념 - 왜 쓰는지? enum은 열거 및 목록을 의미하는데, 자바에서는 미리 목록을 정의하고자 사용한다. 이때, 목록은 런타임에서 변하지 않는 상수를 의미한다. 특이한 점은 별도로 타입을 지정할 필요가 없다는 점이 없다는 점이다. - 어떤 의미가 있어? c언어에서 enum을 특정한 값 없이 지정한 경우 0부터 할당되는데, 이때 switch문을 통해 활용하는 경우 실제 값인 0,1,2 등을 가지고 동작하기 때문이다. 그러나 자바에서의 enum은 기존에 C언어에서의 enum의 사용에서 업그레이드 되었다. 우선 Type 체크를 수행한다. public enum Food { KOREAN(10), AMERICAN(20), CHI.. 2021. 2. 4. [Java 문법] 패키지 패키지란 무엇인가 오라클 문서에서는 패키지에 대해 access protection 과 namespace 관리를 제공하는 것으로 설명하고 있다. namespace를 사용함으로써 얻을 수 있는 이점은 여러 사람이 협업 시 클래스의 이름이 중복되더라도, 이를 구분할 수 있기에 사용이 가능하다. 가령 동일한 패키지 내에서는 같은 이름의 클래스를 만들수가 없는데, 패키지를 사용함으로써 같은 클래스명이 사용될 수 있다. 물론 사용 시에는 이에 대한 구분을 하기 위해 패키지를 import 해주거나, FQN(Fully Qualified Name)을 사용해야 한다. import란 무엇인가? # import 위에서 말한 import 를 사용하지 않고 Fully Qualified Name을 사용하면 보다시피 인스턴스 생성시.. 2021. 2. 3. 이전 1 2 3 다음