Programming/Java 23

[JAVA STUDY] 9주차 : 예외처리

목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바의 정석을 기반으로 한 예외처리 학습 컴파일 에러 : 컴파일 할 때 발생하는 에러, 자바 컴파일러가 실행될 때 발생하는 에러, 실행할 수 없음 런타임 에러 : 실행할 때 발생하는 에러, 실행은 되나 프로그램이 죽는 경우 논리적 에러 : 작성 의도와 다르게 동작, 잘 동작은 하나 의도대로 동작하지 않는 경우 Java의 런타임 에러 종류 2 가지 에러는 어쩔 수 없지만, 예외는 처리하자! Erro..

Programming/Java 2021.11.29

[JAVA STUDY] 8주차 : 인터페이스

목표 자바의 인터페이스 학습하기 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 인터페이스를 작성하는 것은 클래스를 작성하는 것과 같다. 키워드로 interface를 사용한다. interface 인터페이스_명 { public static final 타입 상수명 = 값; public abstract 메서드명(매개변수); } 인터페이스 멤버들은 제약사항이 있다. 모든 멤버 변수는 public static final 이어야 하며, 이를 생략할 수 있다. 모..

Programming/Java 2021.11.23

[JAVA STUDY] 7주차 : 패키지

목표 자바의 패키지에 대해 학습하세요. 학습할 것 package 키워드 import 키워드 클래스 패스 CLASSPATH 환경 변수 -classpath 옵션 접근지시자 Package 목적 어떤 기능들을 묶어서 용도나 목적에 맞춰서 분리 한 것을 의미한다. ArrayList 클래스는 java.util이라는 패키지 안에 있다. 자바에서 제공하는 유용한 도구들이 있는 패키지라고 이해할 수 있다. 따라서, 프로그램을 작성할 때, 기업의 고유정보등을 이용하여 패키지를 작성하면 클래스의 이름이 충돌하는 것을 방지할 수 있다. Package 작성 관례 클래스의 이름과 구분이 되도록 패키지의 이름은 전부 소문자. 인터넷 도메인 이름의 역순으로 패키지 이름을 구성. 패키지 이름의 끝에 클래스를 정의한 주체 또는 팀을 구..

Programming/Java 2021.11.15

[JAVA] 매개변수의 다형성

* 매개변수의 다형성 - 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다. * 장점 1. 다형적 매개변수 2. 하나의 배열로 여러종류 객체 다루기 1. 다형적 매개변수 - 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다. /* 다형성을 고려하지 않은 하드 코딩 */ class Product { int price; int bonusPoint; } class TV extends Product {} class Computer extends Product {} class Audio extends Product {} class Buyer { // 물건사는 사람 int money = 1000; // 소유금액 int bonusPoint = 0; // 보너스점..

Programming/Java 2021.11.09

[JAVA] 참조변수의 형변환, Instanceof 연산자

자바의 정석 CH7-24,25 * 참조변수의 형변환 - 사용할 수 있는 멤버의 갯수를 조절하는 것 - 조상 자손 관계의 참조변수는 서로 형변환 가능 class Car{} class FireEngine extends Car {} class Ambulance extends Car {} - Car를 부모로 하는 FireEngine과 Ambulance는 각자 Car와 형변환이 가능하지만, 형제끼리(FireEngine, Ambulance)의 형변환은 불가능하다. FireEngine f = new FireEngine(); Car c = (Car)f; // 조상인 Car타입으로 형변환(생략가능) FireEngine f2 = (FireEngine)c; // 자손인 FireEngine타입으로 형변환(생략불가) Ambul..

Programming/Java 2021.11.09

[JAVA] 캡슐화, 다형성

자바의 정석 기초편 - ch 7-22, 23 * 접근 제어자를 사용하는 이유 - 외부로부터 데이터를 보호하기 위함 - 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위함 아래의 예시코드처럼 값에 직접접근을 할 수 있게 되면, 클래스 Time의 룰이 깨져버리는 참사가 일어난다. (0~59의 값을 입력해야하는데 80을 입력하는 경우) public class Time { public int hour; // 0~23 public int minute; // 0~59 public int second; // 0~59 } Time t = new Time(); t.hour = 25; // 멤버 변수에 직접 접근 따라서, 이 코드를 접근제어자를 사용해서 리팩토링한다면 다음과 같다. public class Time..

Programming/Java 2021.11.08

[JAVA] 제어자

* 제어자(modifier) - 클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여 * 접근제어자 : public, private, (default), protected * 그 외 : static, final abstract, native, transient, synchronized, volatile, stricffp - 하나의 대상에 여러 제어자를 같이 사용 가능(접근 제어자는 하나만 가능) public class ModifierTest { public static final int WIDTH = 200; public static void main(String[] args) { System.out.println("WIDTH="+WIDTH); } } * static - 클래스의, 공통적인 ..

Programming/Java 2021.11.08

[JAVA STUDY] 6주차 : 상속

목표 자바의 상속에 대해 학습하세요 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징단일 상속이란 자식 클래스가 하나의 부모클래스로부터 기능을 물려받는 것을 말한다.자바의 상속을 선언하기 위해서 extends 키워드를 사용한다. class A { public void read() {...} } ​ class B extends A { @Override public void read() {...} public void write() {...} } 🚩자바 상속의 특징 요약부모 클래스는 자식 클래스에게 필드와 메소드를 모두 물려준다. 자식 클래스의 생성자를 호..

Programming/Java 2021.11.07

[JAVA STUDY] 5주차 : 클래스(Class)

목표 자바의 Class에 대해 학습하세요. 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 클래스 정의하는 방법 필드 : 객체지향 개념에서 속성에 해당하는 것으로 멤버 변수라고도 한다./* 한정자 / 자료형 / 변수명 */ private String n..

Programming/Java 2021.10.29

[JAVA STUDY] 4주차 : 제어문

목표 자바가 제공하는 제어문 학습 학습내용 선택문 반복문 JUnit5로 테스트 코드 작성하는데 익숙해지기 대시 보드를 만드는 코드 작성 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것. 참여율을 계산하세요. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리가지 보여줄 것. Github 자바 라이브러리를 사용하면 편리합니다. 깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 자주 테스트할 수 있습니다. LinkedList 구현 LinkedList에 대해 공부하세요. 정수를 저장하는 ListNode 클래스를 구현하세요. ListNode add(ListNode head, ListNode nodeToAdd, int p..

Programming/Java 2021.10.27