java 17

[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] 제어자

* 제어자(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

[스프링의 정석] Spring MVC - 원격 프로그램의 실행

* 프로그램을 어떻게 실행시킬까? // 로컬 프로그램의 실행 public class Main { public static void main(String[] args) { System.out.println("Hello"); } } - CLI창에서 java Main 명령어를 통해 자바 인터프리터를 실행시켜 Main 클래스를 실행시킵니다. * 자바 인터프리터는 어떻게 main메서드를 호출할 수 있을까? - main메서드가 static이기 때문에 호출이 가능합니다. static이 아니면 객체를 생성해야 합니다. * 그렇다면 원격 프로그램은 어떻게 실행시킬 수 있을까? - 브라우저, WAS(톰캣)을 통해 실행시킬 수 있습니다. - 하지만 WAS가 실행되려면 먼저 프로그램을 등록하고 프로그램이 특정 호출로 인해 실..

Programming/Spring 2021.10.26

[JAVA] 생성자(constructor), 자바 생성자

남궁성님의 자바의 정석 강의를 기반으로 작성했습니다. - 생성자 (Constructor) * 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드 * 인스턴스 생성시 수행할 작업(IV(인스턴스 변수) 초기화)에 사용 - 생성자 규칙 * 이름이 클래스 이름과 같아야 합니다. * 리턴(return)값이 없습니다. 단, 생성자의 경우는 void를 붙이지 않습니다. 항상 반환값이 없기 때문입니다. * 모든 클래스는 반드시 한 개 이상의 생성자가 있어야 합니다. - 기본 생성자 (default constructor) * 매개 변수가 없는 생성자 * 생성자가 하나도 없을 때만, 컴파일러가 자동 추가 public class Constructor { public static void main(String[] arg..

Programming/Java 2021.10.11

[JAVA] 오버로딩(Overloading)

남궁성님의 자바의 정석을 기반으로 작성했습니다. - 오버로딩 (Overloading) : 과적하다. 한 클래스 안에 같은 이름의 메서드를 여러개 작성한 것. 대표적인 예로 Java의 println() 메서드가 있습니다. 아래의 코드처럼 println()이라는 이름으로 다양한 데이터 형에 따른 println() 로직처리를 할 수 있게 됩니다. void println() void println(boolean x) void println(int x) void println(float x) void println(double x) void println(String x) void println(Object x) void println(char x) void println(char[] x) void println..

Programming/Java 2021.10.11