Java

Java/Java 학습

[JAVA] Java14 개선된 Switch 문

1. 기존의 switch 문 switch (day) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println(6); break; case TUESDAY: System.out.println(7); break; case THURSDAY: case SATURDAY: System.out.println(8); break; case WEDNESDAY: System.out.println(9); break; } 2. 개선된 swtich 문 switch (day) { case MONDAY, FRIDAY, SUNDAY-> System.out.println(6); case TUESDAY -> System.out.println(7); case THURSDAY, SATURDAY..

알고리즘(Java)/알고리즘 정리

[알고리즘] Dynamic Programming(동적 계획법)

1. 동적 계획법(DP)란? - 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법 - 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산X - 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법 2. DP vs 분할 정복 DP 분할 정복 각 부분 문제들이 서로 영향을 미치며 부분 문제가 중복됨 동일한 부분 문제가 반복적으로 계산되지 X 최적 부분 구조를 가질 때 사용 O (큰 문제를 작은 문제로 나눌 수 있고 작은 문제의 답을 모아 큰 문제를 해결할 수 있는 상황) 3. DP의 2가지 방식 1. Top-Down(하향식) - 재귀 이용 - 메모이제이션 기법 활용 - 한 번 계산한 결과를 메모리 공간에 메모하는 기법(캐싱) - 다이나믹 프로그래밍 구현 기법(하..

Java/Do It! 자바 프로그래밍

[JAVA] 10. 인터페이스

1. 인터페이스란? 1. 구현 코드가 없는 인터페이스 인터페이스는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 한다. 인터페이스는 추상 메서드와 상수로만 이루어져 있다. 구현 코드가 없기 때문에 인터페이스로 인스턴스를 생성할 수 없다. public interface Calc { double PI = 3.14; int ERROR = -999999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1, int num2); } public abstract 를 쓰지 않아도 자동으로 추상 메서드로 변환된다. public static f..

Java/Do It! 자바 프로그래밍

[JAVA] 09. 추상 클래스

1. 추상 클래스 1. 추상 클래스란? 추상 클래스란 하나 이상의 추상 메서드를 포함하는 클래스를 말한다. 추상 메서드는 구현부가 없고 abstract를 이용하여 선언만 하는 메서드다. // 구현체가 없는 추상 메서드 abstract int add(int x, int y); // 추상 메서드 아님! int add(int x, int y) {} (주의) { }를 사용한 것만으로도 메서드를 구현한 것이므로 중괄호 {} 안에 구현 코드가 없다고 하더라도 구현부는 존재하므로 추상 메서드가 아니다! 함수의 선언부(반환 값, 함수 이름, 매개변수)를 정의한다는 것은 함수의 역할이 무엇인지, 어떻게 구현해야하는지를 정의한다는 뜻이다. 따라서 함수 몸체를 구현하는 것보다 중요한 것은 함수 선언부를 작성하는 것이다. 2..

Java/Do It! 자바 프로그래밍

[JAVA] 08. 상속과 다형성

1. 상속이란? 1. 클래스의 상속 상위 클래스(부모 클래스), 하위 클래스(자식 클래스) 라고 한다. 상위 클래스가 하위 클래스보다 일반적인 개념이고 하위 클래스는 상위 클래스보다 구체적인 클래스다. 1) 클래스 문법 상속 상속을 구현할 때는 extends 를 사용한다. 'B 클래스가 A 클래스를 상속받는다'를 코드와 그림으로 나타낸 것이다. 2. 상속을 사용하여 고객 관리 프로그램 구현하기 실습 코드는 여기서 1) Customer 클래스 구현하기(Customer.java) 모든 멤버 변수를 반드시 private으로 구현할 필요는 없다. 필요에 따라 멤버 변수나 메서드를 외부에 노출하지 않을 목적일 때 private으로 선언하다. 2) VIPCustomer 클래스 구현하기(VIPCustomer.java..

Java/Do It! 자바 프로그래밍

[DoItJava] 07. 배열과 ArrayList

1. 배열이란? 1. 자료를 순차적으로 관리하는 구조, 배열 배열(Array)는 자료가 연속으로 나열된 자료구조다. 배열을 사용하면 자료형이 같은 여러 개를 한번에 관리할 수 있다. 2. 배열 선언과 초기화 배열을 선언하면 선언한 자료형과 배열 길이에 따라 메모리가 할당된다. 배열 선언 방식은 2가지가 있지만 첫번째 방법을 사용하는 걸 추천한다. 1) 자료형[] 배열명 = new 자료형[개수] 2) 자료형 배열명[] = new 자료형[개수] int[] num = new int[10];// int형 요소가 10개인 배열 선언 3. 배열 초기화하기 1) 배열을 선언함과 동시에 각 요소의 값이 자동 초기화 자바에서는 배열을 선언함과 동시에 각 요소의 값(정수는 0, 실수는 0.0, 객체 배열은 null)로 초..

Java/Do It! 자바 프로그래밍

[DoItJava] 06. 클래스와 객체2

1. this 예약어 1. 자신의 메모리를 가리키는 this this는 생성된 인스턴스 자신을 가리키는 역할을 한다. class BirthDay { int day; public void setDay(int daY) { this.day = day; } } 2. 생성자에 다른 생성자를 호출하는 this this를 사용해 클래스의 생성자에서 다른 생성자를 호출할 수 있다. (주의!) this를 사용하여 생성자를 호출하는 코드 이전에 다른 코드를 넣으면 오류가 난다! (디폴트 생성자에서 생성이 완료되는 것이 아니라 this를 사용해 다른 생성자를 호출하므로) class Person{ String name; int age; Person(){ this("이름 없음", 1); // Person(String, int)..

Java/Do It! 자바 프로그래밍

[DoItJava] 05. 클래스와 객체1

객체 객체지향 프로그램의 대상, 생성된 인스턴스 클래스 객체를 프로그래밍 하기 위해 코드로 만든 상태 인스턴스 클래스가 메모리에 생성된 상태 멤버 변수 클래스의 속성, 특성 메서드 멤버 변수를 이용하여 클래스의 기능을 구현 참조 변수 메모리에 생성된 인스턴스를 가리키는 변수 참조 값 생성된 인스턴스의 메모리 주소값 접근 제어자 접근 가능 범위 public 외부 클래스 어디에서나 protected 같은 패키지 내부 & 상속 관계의 클래스에서만 아무것도 없는 경우 default 이며 같은 패키지 내부에서만 private 같은 클래스 내부에서만 1. 객체 지향 프로그래밍과 클래스 1. 클래스란? 클래스는 객체의 속성과 기능을 코드로 구현한 것 - 클래스 외부에는 package 선언, import 문장 외 아무..

HSY_mumu
'Java' 태그의 글 목록