Language/Java 36

7. 날짜, 시간 & 형식화

Date 클래스 날짜와 시간을 다룰 목적으로 제공됨 Date d = new Date();처럼 인스턴스를 생성하여 사용한다 Calendar클래스 추상 클래스로 직접 객체를 생성할수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야함 Calendar cal = Calendar.getInstance(); * getInstance()는 시스템의 국가와 지역설정을 확인해서 태국인 경우에는 BuddhistCalendar의 인스턴스를 반환, 그 외에는 GregorianCalendar의 인스턴스를 반황한다 * 메서드를 통해 인스턴스를 반환하는 것은, 최소한의 변경으로 프로그램이 동작하도록 하기 위함이다. public class Main { public static void main(String[] arg..

Language/Java 2021.07.19

6.2 java.lang패키지 (String 클래스)

문자열을 저장하고 이를 다루는데필요한 메서드를 제공 한번 생성된 String인스턴스가 가지고 있는 문자열은 읽어 올 수만있고, 변경할 수는 없다. 예를 들어, '+'연산자를 이용해서 문자열을 결합할때, 인스턴스 내의 문자열이 바뀌는 것이 아니라 새로운 문자열("ab")가 담긴 String인스턴스가 생성된다. * 문자열의 결합이나 추출 등 문자열을 다루는 작업이 많이 필요한 경우에는 StringBuffer클래스를 사용하는 것이 좋다. (저장된 문자열은 변경이 가능하기 때문에) String클래스의 생성자를 통해 객체를 생성할때는 메모리할당에 의해 항상 새로운 String인스턴스가 생성되지만, 문자열 리터럴은 이미 존재하는 것을 재사용한다. 기본형를 String으로 변환 int i = 100; double j..

Language/Java 2021.07.15

6.1 java.lang 패키지 (object 클래스)

java.lang 패키지 자바 프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. * 때문에 import 없이 사용할수 있음 Object 클래스 1. equals(Object obj) 매개변수로 객체의 참조변수를 받아서 인스턴스와 비교한 결과값을 boolean값으로 알려준다 * equals 메서드는 주소값으로 비교를 하기 때문에, 두 Value인스턴스의 멤버변수 value의 값이 서로 같더라도 equals로 비교한 결과값은 false가 된다. 결국 두 개의 참조변수가 같은 객체를 참조하고 있는지(두 참조변수의 주소값이 같은지) 판단하는 기능을 함 public class Main { public static void main(String[] args) throws IOException { Value ..

Language/Java 2021.07.15

5. 예외처리

프로그램이 실행 중 어떤 원인에 의해서 오작동 하거나 비정상적으로 종료되는 경우, 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류 라고 한다. 에러 종류 컴파일 에러: 컴파일시 발생하는 에러 런타임 에러: 실행시 발생하는 에러 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것 컴파일을 에러 없이 성공적으로 마쳤다고 해도 프로그램의 실행 시에도 에러가 발생하지 않는 것은 아님. 컴파일러가 실행 도중에 발생할 수 있는 잠재적 오류까지 검사할수 없기 때문. 자바에서는 실행 시(runtime) 발생할 수 있는 프로그램 오류를 애러(error)와 예외(exceptio)으로 구분한다. Error : 프로그램 코드에 의해서 수습될수 없는 오류 ex)메모리 부족, 스택오버플로우 Exception: 프로그..

Language/Java 2021.07.14

4.7 객체 지향 프로그래밍 (인터페이스)

인터페이스 대상이되는 시스템을 제어하기위해 제어할때 사용하는 장치로, 추상 메서드의 집합. 오직 추상메서드와 상수, default 메서드, static 메서드만을 멤버로 가질수 있으며, 그 외의 다른 요소를 허용하지 않는다. * 그래서 추상클래스보다 추상화 정도가 높음 - 인터페이스의 모든 멤버의 제어자는 외부에서 기능을 제어하기 위해 public이여야 한다 (외부 접근 허용을 위해) - 모든 멤버변수는 public static final 이여야 하며, 해당 키워드 생략 가능 - 모든 메서드는 public abstract 이여야 하며, 해당 키워드 생략 가능 * 단 static메서드와 default 메서드는 예외 인터페이스 구현 인터페이스의 추상메서드를 완성하기 위해서는 클래스를 통해 구현할 수 있다. ..

Language/Java 2021.07.12

4.6 객체 지향 프로그래밍 (다형성)

다형성 여러 가지 형태를 가질 수 있는 능력. 조상 클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 함. class Tv { boolean power; int channel; void power(){power = !power}; void channelUp(){++channel}; void channelDown(){--channel}; } class CaptionTv extends Tv{ String text; void caption(){}; } 참조형변수의 형변환 서로 상속관계에 있는 클래스 사이에서만 가능 인스턴스 타입과 참조변수의 타입이 일치하는 것이 보통이지만, 클래스가 서로 상속관계에 있을 경우, 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조하도록 하는것이 가능하다..

Language/Java 2021.07.09

4.5 객체 지향 프로그래밍 (제어자)

제어자 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여. static '클래스의' 또는 '공통적인'의 의미를 가지고 있다. static 멤버변수 - 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 됨 - 클래스 변수는 인스턴스를 생성하지 않고도 사용 가능 - 클래스가 메모리에 로드될때 생성 메서드 - 인스턴스를 생성하지 않고도 호출이 가능 - static 메서드 내에서는 인스턴스 멤버들을 직접 사용할 수 없음 final '마지막의' 또는 '변경될 수 없는'의 의미 final 클래스 변경될 수 없는, 확장할 수 없는 클래스 fianl로 지정된 클래스는 다른 클래스의 조상이 될수 없음 메서드 변경될 수 없는 메서드 final로 지정된 메서드는 오버라이딩을 통해 재정의될 수 없음 멤..

Language/Java 2021.07.09

4.4 객체 지향 프로그래밍 (상속, 오버라이딩)

상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 상속을 받은 자손 클래스는 조상 클래스의 모든 멤버를 상속 받는다 조상 클래스가 변경되면 자손 클래스는 영향을 받지만, 자손 클래스에 새로운 코드가 추가되어도 조상 클래스는 아무런 영향을 받지 않는다 - 생성자와 초기화 블럭은 상속되지 않는다. (멤버만 상속) - 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. - 자손 클래스의 인스턴스를 생성하면 조상 클래스의 멤버와 자손 클래스의 멤버가 합쳐진 하나의 인스턴스로 생성된다. 단일상속 자바에서는 오직 단일 상속만 허용한다. Object 클래스 모든 클래스 상속계층도의 최상위에 있는 조상 클래스. 다른 클래스로부터 상속 받지 않는 모든 클래스들은 자동적으로 Object 클래스로부터 ..

Language/Java 2021.07.09

4.3 객체 지향 프로그래밍 (오버로딩, 생성자)

오버로딩 한 클래스 내에 같은 이름의 메서드를 여러개 정의하는 것 * 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 오버로딩 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. * 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다 가변인자와 오버로딩 기존에는 메서드의 매개변수 개수가 고정적이었으나, jdk1.5부터 동적으로 지정해 줄수 있게 되었다. 가변인자는 '타입... 변수명'과 같은 형식으로 선언된다. 또한 가변인자 외에 매개변수가 더 있다면, 가변인자를 매개변수 중에서 제일 마지막에 선언해야 한다. static String co..

Language/Java 2021.07.08

4.2 객체 지향 프로그래밍 (변수와 메서드)

변수 종류 위치 생성 시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수 인스턴스가 생성되었을 때 지역 변수 클래스 영역 이외 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 Class Variables{ int iV// 인스턴스 변수 static int cv;//클래스 변수 (static변수, 공유변수) void method(){ int lv = 0;//지역변수 } } * static이 붙은 것은 클래스 변수로, 모든 인스턴스가 공유하게 된다. (모든 인스턴스들이 공통적인 값을 유지해야하는 속성인 경우, 클래스 변수로 선언) 메서드 특정 작업을 수행하는 일련이 문장들을 하나로 묶은 것 특징 1. 높은 재사용성 : 한번 만들어 놓으면 몇번이고 호출할 수 있다. 2..

Language/Java 2021.07.07
728x90