Java/온라인 자바 스터디
-
[JAVA] 12주차 과제 : 애노테이션Java/온라인 자바 스터디 2024. 4. 11. 18:56
목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애노테이션 정의하는 방법 자바 애노테이션은 코드 사이에 메타데이터를 제공하는 방법으로, 주석보다 더 많은 기능을 합니다. 이는 소스 코드에 추가할 수 있는 특수한 형태의 '주석'이며, 코드에 정보를 제공하거나 컴파일러에게 특정 동작을 수행하도록 지시하는 등의 목적으로 사용됩니다. 애노테이션은 @interface 키워드를 사용하여 정의합니다. @interface는 자바의 키워드 중 하나로, 애노테이션 정의를 생성하는데 사용됩니다. 다음은 기본적인 애노테이션 구문입니다. public @interface MyAnnotation { // 애노테이션 요..
-
[JAVA] 14주차 과제 : 제네릭Java/온라인 자바 스터디 2021. 7. 4. 16:35
목표 자바의 제네릭에 대해 학습하세요. 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭 사용법 제네릭이란? 제네릭이란 클래스 혹은 메소드에서 사용할 내부 데이터 타입을 외부에서 지정하는 방법을 말합니다. 이를 통해 일반화 클래스와 메소드를 사용자가 원하는 타입으로 제어할 수 있습니다. 제네릭 기본 문법 일반적으로 제네릭 타입은 'T'를 사용하여 표현하지만, 어떤 영문 대문자라도 상관없습니다. 클래스에 제네릭 사용하기 제네릭을 사용한 클래스 선언은 아래와 같습니다. public class Box { private T t; public void set(T t) { this.t = t; } public T get() { return..
-
[JAVA] 13주차 과제 : I/OJava/온라인 자바 스터디 2021. 7. 4. 16:35
목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 스트림(Stream) 기반의 I/O 스트림은 단일 방향의 연속적인 데이터 흐름을 표현하는 개념입니다. 자바에서는 데이터를 바이트 단위로 흘려보내는 InputStream과 OutputStream이 있습니다. 문자 데이터를 흘려보내는 Reader와 Writer도 있습니다. 이는 저수준..
-
[Java] 11주차 과제 : 자바의 열거형Java/온라인 자바 스터디 2021. 1. 24. 15:52
목표자바의 열거형에 대해 학습하세요. 학습할 것 (필수)enum 정의하는 방법enum이 제공하는 메소드 (values()와 valueOf())java.lang.EnumEnumSet enum 정의하는 방법자바에서는 enum 키워드를 사용하여 열거체를 정의할 수 있다. 문법enum 열거체이름 {상수1이름, 상수2이름, ...}예제enum Rainbow {RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET} 사용열거체이름.상수이름예제Rainbow.RED 열거체의 상수 값 정의 및 추가정의된 열거체의 첫 번째 상수 값은 0부터 설정되며, 그 다음은 바로 앞의 상수 값보다 1만큼 증가되면 설정된다. 또한, 불규칙한 값을 상수 값으로 설정하고 싶으면 상수의 이름 옆에 괄호(())..
-
[Java] 10주차 과제 : 자바의 멀티쓰레드 프로그래밍Java/온라인 자바 스터디 2021. 1. 23. 20:10
목표자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수)Thread 클래스와 Runnable 인터페이스쓰레드의 상태쓰레드의 우선순위Main 쓰레드동기화데드락 Thread 클래스와 Runnable 인터페이스쓰레드를 구현하는 방법은 Thread클래스를 상속받는 방법과 Runnable인터페이스를 구현하는 방법, 모두 2가지가 있다. 이 두 가지 방법 중 어는 쪽을 사용해도 별 차이는 없지만 Thread클래스를 상속받으면 다른 클래스를 상속받을 수 없기 때문에, Runnable인터페이스를 구현하는 방법이 일반적이다. Runnable인터페이스를 구현하는 방법은 재사용성(rEeusability)이 높고 코드의 일관성(consistency)을 유지할 수 있다는 장점이 있기 때문에 보다 객체지향적인 방법..
-
[Java] 9주차 과제 : 자바의 예외 처리Java/온라인 자바 스터디 2021. 1. 17. 17:54
목표자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수)자바에서 예외 처리 방법 (try, catch, throw, throws, finally)자바가 제공하는 예외 계층 구조Exception과 Error의 차이는?RuntimeException과 RE가 아닌 것의 차이는?커스텀한 예외 만드는 방법 자바에서 예외 처리 방법 (try, catch, throw, throws, finally)try-catch예외를 처리하기 위해서는 try-catch문을 사용하며, 그 구조는 다음과 같다.try {// 예외가 발생할 가능성이 있는 문장들을 넣는다.} catch (Exception1 e1){// Exception1이 발생했을 경우, 이를 처리하기 위한 문장을 적는다.} catch (Exception2 e2){/..
-
[Java] 8주차 과제 : 자바의 인터페이스Java/온라인 자바 스터디 2021. 1. 16. 18:58
목표자바의 인터페이스 학습하기 학습할 것인터페이스 정의하는 방법인터페이스 구현하는 방법인터페이스 레퍼런스를 통해 구현체를 사용하는 방법인터페이스 상속인터페이스의 기본 메소드 (Default Method), 자바 8인터페이스의 static 메소드, 자바 8인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법인터페이스를 작성하는 것은 크래스를 작성하는 것과 같다. 다만 키워드로 class 대신 interface를 사용한다는 것만 다르다. 그리고 interface에도 클래스와 같이 접근제어자로 public 또는 default를 사용할 수 있다. interface 인터페이스명 {public static final 타입 상수명 = 값;public abstract 메서드명(매개변수);} 일반적으로 ..
-
[Java] 7주차 과제 : 자바의 패키지Java/온라인 자바 스터디 2020. 12. 29. 17:21
목표자바의 패키지 학습하기 학습할 것package 키워드import 키워드클래스패스CLASSPATH 환경변수-classpath 옵션접근지시자 package 키워드클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함 시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다.클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. 그래서 어떤 패키지에 속한 클래스는 해당 디렉토리에 존재하는 클래스 파일(.cl..
-
[Java] 6주차 과제 : 자바의 상속Java/온라인 자바 스터디 2020. 12. 28. 11:46
목표자바의 상속에 대해 학습하기. 학습할 것자바 상속의 특징super 키워드메소드 오버라이딩다이나믹 메소드 디스패치 (Dynamic Method Dispatch)추상 클래스final 키워드Object 클래스 자바 상속의 특징상속이란?객제 지향에서의 상속은 상위 클래스의 특성을 하위 클래스에서 상속(특성 상속)하고 거기에 더해 필요한 특성을 추가, 즉 확장해서 사용할 수 있다는 의미입니다. 상속의 특징 - 객체 지향의 상속은 상위 클래스의 특성을 재사용하는 것이다. - 객체 지향의 상속은 상위 클래스의 특성을 확장하는 것이다. - 객체 지향의 상속은 is a kind of 관계를 만족해야 한다. 12345678910111213141516171819202122232425262728293031323334353..
-
[Java] 5주차 과제 : 자바의 ClassJava/온라인 자바 스터디 2020. 12. 19. 17:16
목표자바의 Class에 대해 학습하기 학습할 것- 클래스 정의하는 방법- 객체 만드는 방법 (new 키워드 이해하기)- 메소드 정의하는 방법- 생성자 정의하는 방법- this 키워드 이해하기 클래스 정의하는 방법123456789101112131415161718192021222324252627282930접근제어자 class 클래스명 { // 멤버 변수 // 생성자 // 메서드} public class Animal{ private String name; // 멤버 변수 private String habitat; Animal(){ // 생성자 } public String getName() { return name; } public void setName(String name) { this.name = name..