Development (24)

목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 출처/참고 [01] 추상클래스와 인터페이스의 차이가 뭐죠? 추상 클래스(abstract class) 클래스는 일반 클래스(concrete class, )와 추상 클래스로 나뉘는데 추상 클래스는 클래스 구현부 내부에 추상 메서드가 하나 이상 포함되거나 abstract로 정의된 경우를 말한 cbw1030.tistory.com 선언할 때 public static final이 생략되어..


목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속이란 부모 클래스(상위 클래스)와 자식 클래스(하위 클래스)가 있으며, 자식 클래스는 부모 클래스를 선택해서, 그 부모의 멤버를 상속받아 그대로 쓸 수 있게 된다. 기존 클래스를 재사용해서 새로운 클래스를 작성하는 것 => 효율적이고 개발시간을 줄일 수 있음 두 클래스를 조상과 자손으로 관계를 맺는 것 자손은 조상의 모든 멤버를 상속받는다. 자손의 멤버개수는 조상보다 같거나 많다. 상속을 받을 때 'extends'키워드를 사용한다. 부모 클래스의 priv..

목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 (Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. Class 객체를 정의해 놓은 것, 객체의 설계도/틀 속성과 기능으로 정의되어 있다. 객체를 생성하는데 사용되며 객체는 클래스에 정의..

1. SRP (단일책임의 원칙: Single Responsibility principle) : 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되어야 한다는 원칙 책임이 확실해지기 때문에 변경하더라도 다른 책임의 변경 연쇄작용에서 자유로울 수 있다. 코드의 가독성 향상, 유지보수 용이 다른 원리들을 적용하는 기초 => 중요한 기준은 '변경', 변경이 있을 때 파급효과가 적으면 단일책임 원칙을 잘 따른 것. 2. OCP (개방폐쇄의 원칙: Open Close Principle) : 소프트웨어의 구성요소는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원칙 요구사항의 변경이나 추가사항이 발생하더라도, 기존 구성요소는 수정이 일어나지 말아야하며, 기존 구성..

캡슐화 변수와 클래스를 하나로 묶는 작업 중요한 데이터를 보존, 보호하기 위해 사용하는 것 클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하도록 사용 멤버변수에 접근제어자 private 사용 setter/getter 메소드를 통해 변수의 값들을 조회하거나 수정하게 함. 캡슐화된 클래스 내부의 메서드만을 통해 변수를 조작가능 => 정보 은닉 상속 기존 클래스를 재사용해서 새로운 클래스를 작성하는 것 두 클래스를 조상과 자손으로 관계를 맺어준다. 상속받는 클래스를 자식클래스, 하위클래스, 서브클래스 상속해주는 클래스를 부모클래스, 상위클래스, 슈퍼클래스 부모클래스의 필드와 메서드를 물려받는다. 단, 접근제어자 private을 갖는 필드나 메서드는 상속 불가 자손의 멤버 개수는 조상보다 같..


JUnit5 세부모듈 JUnit Platform : 테스트를 실행해주는 런처제공, TestEngine API 제공 JUnit Jupiter : TestEngineAPI 구현체로 JUnit5를 제공 JUnit Vintage : JUnit4와 JUnit3을 지원하는 TestEngine구현체 Annotation @Test 테스트임을 나타낸다. @BeforeAll 현재 클래스에서 모든 메서드 전에 실행됨. 메소드는 static 이어야 한다. @AfterAll 현재 클래스에서 모든 메서드 후에 실행됨. 메소드는 static 이어야 한다. @BeforeEach 각각의 테스트 메서드 전에 실행됨. @AftetEach 각각의 테스트 메서드 후에 실행됨. @Disabled 테스트 클래스나 메서드를 비활성화 할때 사용. ..


목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 (필수) 선택문 반복문 선택문(조건문) - if, switch if문 가장 기본적인 조건문으로 조건식과 괄호{}로 이루어져 있다. ' 만일(if) 조건식이 참(true)라면 괄호{} 안의 문장들을 수행하라 ' 는 의미. 조건식의 결과는 true 또는 false 이어야 한다. 구조 if ( 조건식 ) { // 조건식이 참(true)일 때 수행될 문장들 } //예제 int num = 80; if( num > 50 ){ // true System.out.println("num은 50보다 큽니다."); } if( num == 50){ // false 괄호안에 문장이 실행되지 않음. System.out.println("num은 50과 같다."); } if( n..

축약어 main 메소드 : psvm System.out.println() : sout 단축키 ctrl + y : 한줄삭제 ctrl + d : 한줄복사 ctrl + shift : 라인 합치기 alt + shift + 위아래방향키 : 줄이동 ctrl + shift + 위아래방향키 : 구문 내 줄이동 shift + alt + ctrl + 위아래방향키 : 엘리먼트 이동 ctrl + p : 인자값 확인 shift + ctrl + i : 코드 구현부 즉시 보기 shift + q : doc 즉시 보기 ctrl + 좌우방향키 : 단어별 이동 alt + 좌우방향키 : 페이지 이동 ctrl + shift + 방향키 : 선택하면서 단어별 이동 fn + 좌우방향키 : 라인 앞,끝으로 이동 fn + shift + 좌우방향키 :..


목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 연산자 operator : 연산을 수행하는 기호 *피연산자 : 연산자의 작업대상 => 대부분 연산자는 두개의 피연산자를 필요로 한다. 연산자는 피연산자로 연산을 수행하고 나면 결과값을 반환한다. 산술연산자 (+, -, *, /, %) * , / , % 연산자는 +, - 연산자 보다 우선순의가 높으므로 먼저 처리된다. 피연산자가 정수형인 경우, 나누는 수로 0을 사용할 수 없다. 만일 0으로 나눈다면 실행시 오류(Artihmetic..