분류 전체보기 182

[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

[백준] 7568번 : 덩치 (Java)

7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다..

[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

빅오 표기법(Big-O notation), 시간복잡도, 공간복잡도

Big-O notation : 자료구조나 알고리즘에서 성능 측정에 가장 중요한 지표 빅오 식의 규모 : O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) /* N을 입력받아 1~N의 합을 구하는 코드 */ import java.util.Scanner; public class Hap { public static void main(String[] args) { Scanner input = new Scanner(System.in); int a = input.nextInt(); int sum = 0; for (int i=1; i

[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