Java

Java/live-study

(JAVA)백기선 라이브 스터디 7주차 : 패키지

목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스 패스 CLASSPATH 환경변수 -classpath 옵션 접근 지시자 1. package 키워드 package의 구조는 다음 그림과 같다. 이처럼 package 개념은 class 들을 모아놓은 폴더라고 말할 수 있다. 그럼 소스코드에서 package 키워드를 알아보자. 1. package 키워드란 현재 class가 위치하고 있는 구조의 위치를 나타낸다. 2. package 키워드는 항상 가장 첫 줄에 존재해야 한다. 즉 위의 그림처럼 BinaryTree 클래스는 live_study_05 -> option -> binaryTree라는 계층적 구조를 가지고 있다는 것을 명시해놓은 키워드라고 생각하면 된..

Java/live-study

[JAVA] 백기선 라이브 스터디 6주차 과제: 상속

목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 1. 자바 상속의 특징 1. 다중상속(Multiple inheritance)을 지원하지 않음 Class 다중상속을 지원하지 않음으로 extends 다음에는 하나의 class 이름만 표기. 2. 상속의 횟수에 제한이 없음 B 클래스는 A클래스를 상속받습니다 C 클래스는 A, B 클래스를 상속받습니다 D 클래스는 A, B, C 클래스를 상속받습니다 3. 계층 구조의 최상위에 있는 클래스는 Object 클래스임 모든 class는 object를 상속받도록 표현하지 않아도 컴파일러에 ..

Java/live-study

[Java] 클래스(class) - 백기선 라이브 스터디 5주차

목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메서드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 Class 란 무엇인가? 클래스(class)는 객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 일종의 틀이다. (wikipedia에서는 이와 같이 정의하고 있다.) 그냥 간단히 말해서 어떤 사물들이 가지고 있는 특성들을 정의할 수 있는 큰 그릇이라고 생각하면 쉽다. 위에 그림에서는 class는 Account(계정) 이 되고 변수는 (계정 ID, 계정 PW , 이름 , 나이 , 사는 지역) 이 된다. 작성방법 접근 지정자 class 클레스명 { 필드 1 필드 2 } 위 그림을..

Java

[Java] Proxy 패턴이란? (Dynamic Proxy)

Prxoy Patten 클라이언트가 RealSubject(실제 서비스에 필요한 코드)를 직접 호출하지 않고 Proxy(대리인)를 호출하여 Proxy(대리인)로 하여금 RealSubject를 대신 호출시키는 디자인 패턴이다. 간단한 예를 들어보자. public class RealSubject { public void hello() { System.out.println("안녕하세요"); } public void bye() { System.out.println("다음에 만나요"); } } RealSubject 에는 hello() , bye()라는 중요한(?) 메서드가 있고 우리는 이 중요한 메서드를 서비스를 제공하기 전에 성능 측정을 해보고 싶다. 다음은 Proxy 패턴을 쓰지 않고 성능을 측정한 코드이다. ..

Java/live-study

[JAVA] 백기선 자바 스터디 4주차 과제: 제어문

학습할 것 (필수) 1) 선택문 2) 반복문 1) 선택문 1-1) if 문 if (조건){ 조건에 맞으면 동작할 코드 } public class demo { public static void main(String[] args) { boolean result = true; if(result){ System.out.println("result 가 True 입니다 "); } } } 1-2 if -else 문 if (조건){ 조건에 맞으면 동작할 코드 } esle { 조건에 반대되면 동작할 코드 } public class demo { public static void main(String[] args) { boolean result = true; if(result){ System.out.println("resu..

Java

[Java]XOR 이용하기

XOR의 진리표는 다음과 같다. 그럼 사용할 수 있는 경우를 보자. Arrays.asList(1,1,2,2,3,3,5,5,4) 위와 같은 List 가 있다. list 안에는 중복되는 1,2,3,5 가 있을 때 중복되지 않는 4의 값만 가져오고 싶다. 이러한 알고리즘을 풀 때는 다양한 방법이 존재하지만 XOR을 이용해서 간단히 풀 수 있다. private Integer Solution(List integers) { Integer i = 0; for (Integer integer : integers) { i ^=integer; } return i; } 이렇게 간단한 XOR 방법으로도 4를 추출할 수 있다. 좀 더 자세히 알아보자면 0 ^ 1 = 1 1 ^ 1 = 0 0 ^ 2 = 2 2 ^ 2 = 0 0 ^..

Java

[Java]equals , hashCode 사용하기

equals와 hashCode 사용하기 ( +lombok) equals와 hashCode 사용하기 ( +lombok) 안녕하세요? 이번 시간엔 equasl & hashcode를 어떤 곳에서 사용할 수 있는지를 확인해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용 jojoldu.tistory.com 한 두 달 전에 이 글을 읽고 아 이렇게 객체를 이용해서도 분류할 수 있구나 정도만 생각하고 넘어갔다. 그러다가 ICT 인턴십 을 진행하면서 아래 예시 같이 있는 excel data를 파싱 해서 id field LocalDataTime DisplayName 필드가많아요~ field DisplayName 1 "중복이야!" "2020-10-20" ..

Java

[Java]reflection 을 이용한 간단한 DI 프레임워크 만들기

Test 코드는 다음과 같다. @Test public void DI확인테스트() { BookService bookService = SimpleDI.getObject(BookService.class); assertThat(bookService).isNotNull(); BookRepository bookRepository = bookService.getBookRepository(); assertThat(bookRepository).isNotNull(); } @Test public void DI확인테스트2() { BookRepository bookService = SimpleDI.getObject(BookRepository.class); assertThat(bookService).isNotNull(); } T..

jay Joon
'Java' 카테고리의 글 목록 (2 Page)