Java Live Study (10) 썸네일형 리스트형 Live Study 14주차 : 제네릭 목표 자바의 제네릭에 대해 학습하기 학습할 것 제네릭 사용법 제네릭 주요 개념(바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭(Generic)이란? 일반화한다! 그리고 그 일반화의 대상은 자료형이다. 자바의 제네릭은 명료하며 쉽게 익숙해질 수 있다. (라고 책에서 말했다) 제네릭은 어떠한 자료형을 기반으로도 인스턴스의 생성이 가능하도록 자료형에 일반적인 클래스를 정의하는 문법이다. 제네릭 사용법 우선 결론부터 살펴보자면, 실행과정에서 발견되는 오류를 컴파일 과정에서 발견되도록 코드를 작성하는 것은 매우 의미 있는 일이다! 예를 들어보자! 사과를 담는 AppleBox 클래스와 오렌지를 담는 OrangeBox 클래스를 정의하였다. (Apple, Orange 클래스는 정의 되었다고 가.. Live Study 13주차 : I/O 목표 자바의 Input과 Output에 대해 학습하기 학습할 것 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 I/O (입출력) 프로그램에서 사용된 데이터를 영구적으로 저장하여 후에 다른 프로그램에서 사용하기 위해 필요한 기능 즉, 프로그램에서 생성된 데이터를 파일 형태로 컴퓨터의 하드 디스크나 보조 기억 장치에 저장한 다음 다른 프로그램에서 이 데이터를 사용하는 기능. 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O Stream 스트림이란? 순서가.. Live Study 12주차 : 애노테이션 목표 자바의 애노테이션에 대해 학습하기 학습할 것 애노테이션 정의하는 방법 @Retention @Target @Documented 애노테이션 프로세서 과제 마감 2021.02.06 1PM Annotation이란? 주석. 메타 데이터(데이터에 관한 데이터)의 한 형태 프로그램에 대한 데이터 제공 코드에 직접적인 영향을 주지 않음 애노테이션 정의하는 방법 이것은 가장 간단한 형태의 애노테이션이다. @Entity ' @ ' 는 컴파일러에게 이다음에 오는 것이 주석임을 알린다. @Override void myJavaStudyMethod() { ... } 애노테이션은 이름(name)이 있을 수도, 없을 수도 있다. 그리고 그 요소에 대한 값이 있다. // 이름이 있는 경우 @Author( name = "white.. Live Study 9주차 : 예외 처리 목표 자바의 예외 처리에 대해 학습하기 학습할 것 자바에서 예외 처리 방법(try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 ->최상위throwable -> 그 밑에 exception, error Exception과 Error의 차이는? RumtimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 예외란? 컴파일 시 발생하는 문법적인 에러가 아니라, 프로그램 실행 도중 발생하는 예기치 않은 문제 정수를 0으로 나누는 경우 배열의 첨자가 음수값을 가지는 경우 배열의 첨자가 배열의 크기를 벗어나는 경우 자바에서 예외 처리 방법(try, catch, throw, throws, finally) try~catch 자바에서는 예외처리를 위해 t.. Live Study 8주차 : 인터페이스 목표 자바의 인터페이스에 대해 학습하기 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 추상 클래스 : 추상 메소드(메소드 선언만 있는)외에 멤버 변수, 일반 메소드를 가질 수 있음 인터페이스 : 추상 메소드와 상수만을 가지는 추상 클래스 -> 다중 상속을 흉내 낼 수 있음 인터페이스 정의하는 방법 interface Man { // 인터페이스 선언 public long ONE_SECOND = 1000; // 상수 선언, 반드시 초기화 public long ONE_MINUTE .. Live Study 7주차 : 패키지 목표 자바의 패키지에 대해 학습하기 학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 과제 마감 2021.01.02 1PM package 키워드 패키지란? 기능이 유사한 클래스들을 모아 하나로 표현한 것. 사용자가 작성한 클래스들을 하나의 패키지로 구성할 수 있으며, 한 패키지 내에서는 모든 클래스가 유일한 이름을 가져야 한다. 그러나 패키지가 다를 경우 동일한 이름의 사용이 가능하다. 사용자는 개발한 클래스들을 하나의 패키지로 만들어 사용할 수 있다. 패키지의 클래스를 만들기 위해서는 클래스 생성 시 첫 번째 라인에 package를 선언해야 한다. 패키지 선언하기 package '패키지 명'; * 클래스를 특정 패키지로 생성하는.. Live Study 6주차 : 상속 목표 자바의 상속에 대해 학습하기 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 과제 마감 2020.12.26 1PM 자바 상속의 특징 객체 지향에서 상속을 통해 얻을 수 있는 효과 3가지 1) 클래스 검색이 쉬움 상속을 통하여 클래스를 체계화할 수 있다. 다수 클래스의 공통적인 성질을 한 개의 상위 클래스에 표현함으로써 상위 클래스에 하위 클래스를 분류하는 관점이 표현될 수 있다. 또한 하위 클래스에는 상위 클래스에 대하여 추가된 속성과 기능이 표현되기 때문에 하위 클래스의 특징을 이해하기 쉽다. 이러한 효과는 체계적인 클래스 계층 구조를 제공하기 때문에 클래스를 .. Live Study 5주차 : 과제 Optional 과제 int 값을 가지고 있는 이진트리를 나타내는 Node 클래스 정의 int value, Node left, Node right를 포함 BinaryTree 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node) dfs(Node node) 메소드 구현 dfs는 왼쪽, 루트, 오른쪽 순으로 순회 Node 클래스는 조건대로 구현했으며, insert에 대한 언급은 없어서 insertNode()라는 메소드를 만들어 왼쪽 자식과 오른쪽 자식을 가리키게 하여 트리를 구성했다. BFS는 큐와 연결리스트를 이용하여 왼쪽 자식과 오른쪽 자식을 큐에 넣어 구성했다. 이게 선생님이 의도한 코드인지는 잘 모르겠다. DFS는 전위 순회라고 생각했고 보다시피 매우 간단히 구현하여 마무리. 맨.. 이전 1 2 다음 목록 더보기