본문 바로가기
728x90
반응형

분류 전체보기77

[Java] 10-1, 2. 날짜와 시간 & 형식화 날짜와 시간 1. Calendar와 Date Date는 날짜와 시간을 다룰 목적으로 JDK1.0부터 제공되어온 클래스이다. 그리고 JDK1.1부터 Calendar 클래스를 제공하기 시작했다. JDK1.8에는 java.time패키지가 존재하지만 수십 년 간 사용되었고 현재도 사용되고 있기 때문에 Calendar와 Date클래스를 배워야 한다. 가볍게 배워보자 Calendar와 GregorianCalendar Calendar는 추상클래스이다. Calendar를 상속받아 구현한 클래스로 GregorianCalendar와 BuddhistCalendar가 있다. 시스템의 국가와 지역설정을 확인해서 태국인 경우 후자의 인스턴스를 반환하고 나머지는 전자의 인스턴스를 반환한다. // 비추천 class MyApplica.. 2022. 9. 16.
[Java] 9-2. 유용한 클래스 유용한 클래스 1. java.util.Objects 클래스 Object클래스의 보조 클래스로 모든 메서드가 static이다. 객체의 비교나 널 체크(null check)에 유용하다. static boolean isNull(Object obj) static boolean nonNull(Object obj)​ isNull()은 해당 객체가 널인지 확인하고 null이면 true를 반환하고 아니면 false를 반환한다. nonNull()은 isNull()과 정반대이다. static T requireNonNull(T obj) static T requireNonNull(T obj, String message) static T requireNonNull(T obj, Supplier messageSupplier)​ r.. 2022. 9. 14.
[Java] 9-1. java.lang패키지 java.lang패키지 java.lang패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. 그렇기 때문에 java.lang패키지의 클래스들은 import문 없이 사용할 수 있다. 자주 사용되는 클래스 몇가지를 학습해보자. 1. Object클래스 Object클래스는 모든 클래스의 최고 상위 클래스이기 때문에 모든 클래스에서 바로 사용할 수 있다. Object클래스의 메서드 설 명 protected Object clone() 객체 자신의 복사본을 반환한다. public boolean equals(Object obj) 객체 자신과 객체 obj가 같은 객체인지 알려준다. protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동으로 호출된다. 이 때 수행되어야 .. 2022. 9. 13.
[Java] 8. 예외처리(exception handling) 예외처리(exception handling) 1. 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이 결과를 초래한 원인을 프로그램 에러 또는 오류라고 한다. 그리고 오류는 발생시점에 따라 컴파일 에러(compile-time error)와 런타임 에러(runtime error)로 나눌 수 있다. 컴파일 에러는 컴파일 도중 발생하는 에러이고 런타임 에러는 프로그램이 실행하는 도중에 발생한 에러이다. 또 한가지 논리적 에러(logical error)가 있는데 이는 컴파일도 잘되고 실행도 잘 되지만 프로그래머가 의도한 것과 다르게 동작하는 것을 말한다 컴파일 에러컴파일 시에 발생하는 에러 런타임 에러실행 시에 발생하는 에러 논리적 에러컴파일도 되고 실행.. 2022. 9. 7.
[Java] 7-8. 내부 클래스(inner class) 내부 클래스(inner class) 1. 내부 클래스란? 내부 클래스는 클래스 내에 선언된 클래스이다. 클래스에 다른 클래스를 선언하는 이유는 간단하다. 두 클래스가 서로 긴밀한 관계에 있기 때문이다. 한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 캘르스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점을 얻을 수 있다. 내부 클래스의 장점 - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. - 코드의 복잡성을 줄일 수 있다.(캡슐화)​ 2. 내부 클래스의 종류와 특징 내부 클래스의 종류는 변수처럼 선언 위치에 따라 구분된다. 내부 클래스 특 징 인스턴스 클래스 (instance class) 외부 클래스의 멤.. 2022. 9. 6.
[Java] 7-7. 인터페이스(interface) 인터페이스(interface) 1. 인터페이스란? 인터페이스는 일종의 추상 클래스이다. 인터페이스는 추상 메서드를 갖지만 추상 클래스보다 추상화 정도가 높아서 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상 메서드와 상수만을 멤버로 가질 수 있다. 인터페이스 또한 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다. 2. 인터페이스의 작성 인터페이스를 작성하는 것은 클래스를 작성하는 것과 같다. 다만 선언부에서 class 키워드 대신 interface 키워드를 사용한다. 그리고 인터페이스 또한 접근 제어자로 public 또는 default를 사용할 수 있다. interface 인터페이스 이름{ public static final 타입 상수이름 = 값; public abstr.. 2022. 9. 6.
[Java] 7-6. 추상클래스(abstract class) 추상 클래스(abstract class) 1. 추상 클래스란? 미완성 메서드를 포함하고 있는 미완성 클래스이다. 추상클래스는 상속을 통해 하위 클래스에 의해서 완성될 수 있다. 추상 클래스는 abstract 키워드를 클래스의 선언부에 붙여주기만 하면 된다. abstract class 클래스 이름 { ... }​ 추상 클래스는 추상 메서드를 포함하고 있다는 점을 제외하고 일반 클래스와 같다. 2. 추상 메서드(abstract method) 메서드는 선언부와 구현부(몸통)로 구성되어 있다. 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것이 추상메서드이다. 메서드를 미완성 상태로 남겨 놓는 이유는 상속받는 클래스에 따라 메서드의 내용이 달라질 수 있기 때문이다. 추상 메서드 역시 키워드 abstrac.. 2022. 9. 6.
[Java] 7-5. 다형성(polymorphism) 다형성(polymorphism) 1. 다형성이란? 객체지향개념에서 다형성이란 여러가지 형태를 가질 수 있는 능력을 말한다. 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 하여 다형성을 프로그램적으로 구현하였다. 구체적으로 말하면 상위 클래스 타입의 참조변수로 하위 클래스 인스턴스를 참조할 수 있도록 하였다는 말이다. class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv { String texst; void caption() { ... } }.. 2022. 9. 5.
[Java] 7-4. 제어자(modifier) 제어자(modifier) 1. 제어자란? 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 접근 제어자public, protected, default, private 그 외static, final, abstract, native, transient, synchronized, volatile, strictfp​ 제어자는 클래스나 멤버변수, 메서드에 주로 사용되고 하나의 대상에 대해서 여러 제어자를 조합하여 사용할 수 있다. 단, 접근 제어자는 한 번에 네 가지 중 하나만 선택해서 사용할 수 있다. 2. static - 클래스의, 공통적인 클래스 변수(static 멤버변수)는 인스턴스에 관계없이 같은 값을 갖는다. 하나의 변수를 모든 인스턴스가 공유하기 때문이다. sta.. 2022. 9. 5.
728x90
반응형