일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바스터디
- raw 타입
- junit 5
- Study Halle
- auto.create.topics.enable
- 바운디드 타입
- System.out
- 스파르타코딩클럽
- 익명 클래스
- 브릿지 메소드
- annotation processor
- github api
- Switch Expressions
- 제네릭 타입
- System.err
- 프리미티브 타입
- 접근지시자
- 합병 정렬
- throwable
- 제네릭 와일드 카드
- 함수형 인터페이스
- 로컬 클래스
- 정렬
- 상속
- docker
- System.in
- 람다식
- yield
- 항해99
- 자바할래
- Today
- Total
목록분류 전체보기 (253)
코딩하는 털보
객체 지향 프로그래밍 40. 인터페이스의 요소들 상수 : 선언된 모든 변수는 상수로 처리 됨 메서드 : 모든 메서드는 추상 메서드 java8 디폴트 메서드 : 기본 구현을 가지는 메서드, 클래스에서 재정의 가능 정적 메서드 : 인스턴스 생성과 상관없이 인터페이스 타입으로 호출하는 메서드 java9 private 메서드 : 인터페이스 내에서 사용하기 위한 메서드, 클래스에서 재정의 불가능 추상 클래스와 다른점은 하나의 클래스에서 여러 인터페이스를 구현할 수 있다. 이떄, 디폴트 메서드의 이름이 중복된다면, 재정의 해야한다. 인터페이스 간에 상속할 수도 있다.(type inheritance) 이때 implements 대신 extends를 사용한다. 요소들 default void description() { ..
객체 지향 프로그래밍 38. 인터페이스를 활용한 다형성 구현 인터페이스의 역할 : 클라이언트에 어떤 메서드를 제공하는지 알려주는 명세 한 객체가 어떤 인터페이스 타입이라는 것은 그 인터페이스의 메서드를 구현했다는 의미 클라이언트 프로그램은 실제 구현내용을 몰라도 인터페이스의 정의만 알면 그 객체를 사용할 수 있다. ex) JDBC Lib의 Connect 인터페이스에 대한 실제 구현은 DB사에서하며 개발자는 구현내용을 몰라도 됨. package scheduler; public interface Scheduler { public void getNextCall(); public void sendCallToAgent(); } package scheduler; public class RoundRobin imple..
객체 지향 프로그래밍 37. 인터페이스 인터페이스의 요소 추상 메서드 : 인터페이스는 모두 추상 메서드로만 구현되어 있다. 상수 : new가 될 수 없기때문에 모든 변수는 상수이다. 디폴트 메서드 : 하위 클래스들의 중복 구현 방지. 정적 메서드 private 메서드 인터페이스의 선언과 구현 public interface Calc { int iNum = 3; //컴파일 과정에서 상수로 변환 int add(int num1,int num2); //컴파일 과정에서 추상 메서드로 변환 } package interfaceex; public class CalcTest { public static void main(String[] args) { Calc calc = new CompleteCalc(); int n1 =..
객체 지향 프로그래밍 34. 추상 클래스 응용: 템플릿 메서드 템플릿 : 틀이나 견본 템플릿 메서드 : 추상 메서드나 구현된 메서드를 활용하여 전체의 흐름을 정의 해 놓은 메서드 final로 선언하여 재정의할 수 없게함 템플릿 메서드 패턴 : 디자인 패턴의 일종 프레임 워크에서 많이 사용되는 설계 패턴 추상 클래스로 선언된 상의 클래스에서 추상 메서드를 이용하여 전체 구현의 흐름을 정의하고 구체적인 각 메서드 구현은 하위 클래스에 위임함 하위 클래스가 어떤 구현을 하든 템플릿 메서드에 정의된 시나리오 대로 수행됨 package template; public abstract class Car { public abstract void drive(); public abstract void stop(); pub..
과제 0. JUnit 5 학습하세요. 인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해 질 것. 이미 JUnit 알고 계신분들은 다른 것 아무거나! 더 자바, 테스트 강의도 있으니 참고하세요~ 과제 1. live-study 대시 보드를 만드는 코드를 작성하세요. 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것. 참여율을 계산하세요. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리가지 보여줄 것. Github 자바 라이브러리를 사용하면 편리합니다. 깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 자주 테스트할 수 있습니다. JUnit5 학습 JUnit은 자바 프로그래밍..
STUDY HALLE 4주차 : 제어문 목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 선택문 반복문 선택문 특정 조건에서만 실행되는 로직이 있는 경우에 사용한다. if - else if (조건식) { 수행문; } //조건식이 참인 경우 수행. 거짓인 경우 조건문 종료. if (조건식) { 수행문1; } else { 수행문2; } //조건식이 참인 경우 수행문1. 거짓인 경우 수행문2. public class Test { public static void main(String[] args) { char gender = 'M'; if ( gender == 'F' ) { System.out.println("여성입니다."); } else { System.out.println("남성입니다."); } } }..
STUDY HALLE 3주차 : 연산자 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 switch 연산자 산술연산자 수학적인 계산에 사용되는 연산자이다. 연산자 의미 + 더하기 - 빼기 * 곱하기 / 나누기 % 나머지 값 구하기 public class Test { public static void main(String args[]) { int a = 7; int b = 3; System.out.println(a+b); // 7+3=10 System.out.println(a-b); // 7-3=4 System.out.println(..
STUDY HALLE 2주차 : 자바 데이터 타입, 변수 그리고 배열 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 Data Type Size Range of Values Default Value byte 1 byte -128 to 127 0 short 2 bytes -32,768 to 32,767 0 int 4 bytes -2,147,483,648 to 2,147,483,647 0..
객체 지향 프로그래밍 33. 추상 클래스란? 추상 클래스 추상 메서드를 포함한 클래스 추상 메서드 : 구현코드 없이 선언부만 있는 메서드 abstract 예약어 사용 new(인스턴스화) 할 수 없음 추상 클래스는 상속의 상위 클래스로 사용된다. 추상 클래스의 추상 메서드는 하위 클래스가 구현해야 한다. package abstractex; public abstract class Computer { //추상 메서드가 있으면 클래스는 항상 추상 클래스이다. public abstract void display(); //이 메서드는 구현하지 않겠다는 의미드 (추상 메서드) public abstract void typing(); //추상 메서드들은 하위 클래스에서 구현된다. public void turnOn() {..
객체 지향 프로그래밍 31. 다운캐스팅과 instanceof 다운캐스팅 묵시적으로 업캐스팅된 인스턴스가 원래의 자료형(하위 클래스)으로 변환되어야 할 때 사용. 다운캐스팅은 명시적으로 이루어진다. Customer vc = new VIPCustomer(); //업캐스팅 - 묵시적 VIPCustomer vCustomer = (VIPCustomer)vc; //다운캐스팅 - 명시적 package polymorphism; import java.util.ArrayList; class Animal { public void move() { System.out.println("동물이 움직입니다."); } } class Human extends Animal { @Override public void move() { Sys..