본문 바로가기

언어 기초

날짜와 시간 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] LocalDateTime  가장 기본이 되는 날짜와 시간 클래스는 `LocalDate,  LocalTime, LocalDateTime 이다. LocalDate: 날짜만 표현할 때 사용한다. 년, 월, 일을 다룬다. 예) `2013-11-21`LocalTime: 시간만을 표현할 때 사용한다. 시, 분, 초를 다룬다. 예) `08:20:30.213` 초는 밀리초, 나노초 단위도 포함할 수 있다.LocalDateTime: `LocalDate` 와 `LocalTime` 을 합한 개념이다. 예) `2013-11-21T08:20:30.213`앞에 Local현지의, 특정 지역의)이 붙는 이유는 세계 시간대를 고려하지 않아서 타임존이 적용되지 않기 때문이다.특정 지역의 날짜와 시간만 고려할 때 사용한다.모든 날짜 클래.. 더보기
열거형 - ENUM [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] ENUM  자바는 타입 안전 열거형 패턴"(Type-Safe Enum Pattern)을 매우 편리하게 사용할 수 있는 열거형(Enum Type)을 제공한다.쉽게 이야기해서 자바의 열거형은 앞서 배운 타입 안전 열거형 패턴을 쉽게 사용할 수 있도록 프로그래밍 언어에서 지원 하는 것이다. 영어인 `enum` 은 `enumeration` 의 줄임말인데, 번역하면 열거라는 뜻이고, 어떤 항목을 나열하는 것을 뜻한다. "Enumeration"은 일련의 명명된 상수들의 집합을 정의하는 것을 의미하며, 프로그래밍에서는 이러한 상수들을 사용하 여 코드 내에서 미리 정의된 값들의 집합을 나타낸다.    주요 메서드  values()**: 모든 ENUM 상수를 포함하는 배열을 반환한다.valueOf(String name).. 더보기
래퍼, Class클래스 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] 기본형의 한계  자바 안에 객체가 아닌 것이 있다. 바로  int, double 같은 기본형(Primitive Type)이다. 기본형은 객체가 아니기 때문에 다음과 같은 한계가 있다. 객체가 아님**: 기본형 데이터는 객체가 아니기 때문에, 객체 지향 프로그래밍의 장점을 살릴 수 없다. 예를 들어 객 체는 유용한 메서드를 제공할 수 있는데, 기본형은 객체가 아니므로 메서드를 제공할 수 없다.-추가로 객체 참조가 필요한 컬렉션 프레임워크를 사용할 수 없다. 그리고 제네릭도 사용할 수 없다.ull 값을 가질 수 없음: 기본형 데이터 타입은 `null` 값을 가질 수 없다. 때로는 데이터가 `없음` 이라는 상태를 나 타내야 할 필요가 있는데, 기본형은 항상 값을 가지기 때문에 이런 표현을 할 수 없다.    .. 더보기
String클래스 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] String 클래스String은 클래스이다. 따라서 기본형이 아니라 참조형이다.String은 불변 객체이다. 따라서 생성 이후에 절대로 내부의 문자열 값을 변경할 수 없다.String.concat()은 내부에서 새로운String 객체를 만들어서 반환한다. 따라서 불변과 기존 객체의 값을 유지한다.속성(필드)private final char[] value;여기에는 String의 실제 문자열 값이 보관된다. 문자 데이터 자체는 char[]에 보관된다. String클래스는 개발자가 직접 다루기 불편한 char[]을 내부에 감추고 String`클래스를 사용하는 개발자가 편리하게 문자열을 다룰 수 있는 수 있도록 다양한 기능을 제공한다. 그리고 메서드 제공을 넘어서 자바 언어 차원에서도 여러 편의 문법을 제공한다.. 더보기
불변객체 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] 하나의 객체를 여러 변수가 공유하지 않도록 강제로 막을 수 있는 방법이 없다.객체의 상태(객체 내부의 값, 필드, 멤버 변수)가 변하지 않는 객체를 불변 객체(Immutable Object)라 한다.1. 필드를 final로 선언객체의 상태를 변경하지 않기 위해 필드들을 final로 선언한다. final 키워드는 필드가 한번 초기화된 후에는 다시 변경될 수 없음을 보장한다.public class ImmutableClass { private final String name; private final int age;}2. 생성자를 통해 모든 필드를 초기화객체가 생성될 때 모든 필드가 초기화되도록 생성자를 사용한다. 이를 통해 객체가 생성될 때 필요한 값들이 반드시 설정되도록 강제할 수 있다.publ.. 더보기
Object클래스 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] java.lang 패키지 소개자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것이 바로 java.lang 패키지이다. lang은 Language(언어)의 줄임말이다. 쉽게 이야기해서 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지를 뜻한다.java.lang 패키지의 대표적인 클래스들Object : 모든 자바 객체의 부모 클래스String : 문자열Integer, Long, Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class : 클래스 메타 정보System : 시스템과 관련된 기본 기능들을 제공Object 클래스자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object클래스이다.자바에서 Object 클래스가 최상위 부모 클래스인 이유는 공.. 더보기
다형성 [JAVA | 학습을 위한 자료 | 김영한 자바 기본] 다형적 참조다형적 참조는 객체 지향 프로그래밍에서 매우 중요한 개념이다. 이를 간단히 말하자면, 부모 클래스 타입의 변수가 자식 클래스 타입의 객체를 참조할 수 있다는 의미이다.부모는 자식을 담을 수 있지만 자식은 부모를 담을 수 없다.이때는 다운캐스팅이라는 기능을 사용해서 부모 타입을 잠깐 자식 타입으로 변경하면 된다.부모 클래스 타입의 변수를 자식 클래스 타입으로 변환하고 싶을 때는 다운캐스팅을 사용해야 한다다형성과 메서드 오버라이딩다형성을 이루는 또 하나의 중요한 핵심 이론은 바로 메서드 오버라이딩이다. 메서드 오버라이딩에서 꼭! 기억해야 할 점은 오버라이딩 된 메서드가 항상 우선권을 가진다는 점이다. 그래서 이름도 기존 기능을 덮어 새로운 기능을 재정의 한다는 뜻의 오버라이딩이다.추상 클래스동물(.. 더보기
상속 [JAVA | 학습을 위한 자료 | 김영한 자바 기본] 상속은 객체 지향 프로그래밍의 핵심 요소 중 하나로, 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해준다. 이름 그대로 기존 클래스의 속성과 기능을 그대로 물려받는 것이다. 상속을 사용하려면 extends 키워드를 사용하면 된다. 그리고 extends 대상은 하나만 선택할 수 있다.용어 정리부모 클래스 (슈퍼 클래스): 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스자식 클래스 (서브 클래스): 부모 클래스로부터 필드와 메서드를 상속받는 클래스상속은 부모의 기능을 자식이 물려 받는 것이다. 따라서 자식이 부모의 기능을 물려 받아서 사용할 수 있다. 반대로 부모 클래스는 자식 클래스에 접근할 수 없다. 자식 클래스는 부모 클래스의 기능을 물려 받기 때문에 접근할 수 있지만 .. 더보기