Programming100 [자바/Java] Time 패키지의 클래스 저번 글에서는 Data클래스에 대해서 알아보았다. https://codingralro.tistory.com/entry/%EC%9E%90%EB%B0%94Java-Date-%ED%81%B4%EB%9E%98%EC%8A%A4 [자바/Java] Date 클래스 Date 클래스 자바에서는 날짜와 시간을 다룰 수 있는 여러 메소드를 제공하는 Date 클래스가 있다. java.util.Date를 import 하여 해당 객체의 메소드를 사용할 수 있다. JDK 1.8(Java 8) 부터는 java.time.* 패키 codingralro.tistory.com 하지만 저번 글에서도 언급하였듯이 Date 클래스는 현재 대부분의 메소드가 사용을 권장하지 않고(deprecated) 있다.(공식문서를 보면...) Time 패키지(.. 2023. 10. 11. [자바/Java] Date 클래스 Date 클래스 자바에서는 날짜와 시간을 다룰 수 있는 여러 메소드를 제공하는 Date 클래스가 있다. java.util.Date를 import 하여 해당 객체의 메소드를 사용할 수 있다. JDK 1.8(Java 8) 부터는 java.time.* 패키지를 통해 Date, Calendar 클래스를 충분히 대체할 수 있으나, 오랜 시간 써 온 클래스인 만큼 자바를 다루는 개발자라면 알아두면 유용하다.(But, Date 클래스의 경우 자바에서 사용을 지양을 하고 있기 때문에 Date 클래스는 기본 지식으로서 알아두기만...) 기본 생성자 Date 객체는 기본 생성자를 통해 생성할 수 있고 이 때에 객체에는 현재 날짜, 시간이 담긴다. //기본생성자를 통한 객체 생성 2023. 10. 10. [자바/Java] 문자열3 - 정규표현식 정규표현식 정규표현식 혹은 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어이다. 정규표현식은 문자열 검색, 치환 등의 있어서 단순한 '문자열 비교'를 하는 것이 아니라 특정 패턴과 비교하고자 할 때 이를 단 몇 줄의 코드로 구현 가능하도록 도와준다. 특히, 사용자가 입력한 문자열 패턴 유효성 체크 등에 많이 사용된다. 주민등록번호, url, email, 비밀번호, ... 날짜포맷(yyyy-mm-dd) 전화번호(010-xxxx-xxxx) 자바에서는 정규표현식을 사용하기 위해서 java.util.regex 패키지에서 관련 클래스들을 제공하고 있다. Pattern 클래스 java.util.regex.Pattern 클래스는 matches() 메소드를 이용하여 특정 문자열이 주어진 정규표현식.. 2023. 10. 9. [자바/Java] 문자열2 - StringBuilder, StringTokenizer StringBuilder StringBuilder는 자바5부터 생긴 클래스로 String과 같이 문자열을 다루는 클래스이다. 쓰레드에 안전하지 않지만(thread-unsafe) 속도가 빠르다는 장점이 있다. 또한 저번 글에서 배운 String 클래스와는 다르게 mutable 클래스이기 때문에 메소드를 수행시 원본의 값이 변경된다. 자바 ver 1.0부터 존재했던 클래스인 StringBuffer 또한 문자열을 다루는 클래스이고 StringBuildr와 같은 기능(메소드)를 갖고 있다. StringBuilder와의 차이점은 쓰레드에 안전(thread-safe)한 대신에 속도가 느리다. 위에서 언급하였듯이, StringBuilder는 빠르고 또한 mutable하기 때문에 메소드 수행 후 반환값을 다시 참조해주.. 2023. 10. 8. [자바/Java] 문자열1 - String 문자열(String) 자바로 프로그래밍을 하다보면 primitive type, reference type 등 많은 기본 타입의 변수와 참조 타입의 변수를 선언하고 사용을 한다. 자바에서는 문자열, 즉 String 타입의 변수는 기본 타입인 아닌 String 클래스를 통해 객체를 생성하여 사용하는 참조 타입이다. (처음 접하는 분들은 모를 수 있는..) 그렇기 때문에 String 타입으로 선언된 객체는 String 클래스에 선언된 수많은 유용한 메소드를 사용할 수 있기 때문에 자바에서는 문자열 타입의 객체를 많이 사용한다. 이번 글에서는 String 클래스에 존재하는 유용한 메소드 들에 대해서 알아보겠다. 문자열 선언 자바에서 클래스를 통해 객체를 생성할 때 new 키워드를 사용하여 생성하지만 String.. 2023. 10. 8. [자바/Java] 예외(Exception) 예외(Exceiption)이란 개발자들이라면 필연적으로 예외가 발생하는 상황을 마주한다. 자신이 작성한 코드를 실행할 때 어떠한 원인에 의해 프로그램이 정상 작동하지 않고 예외 또는 에러를 발생시키며 종료되는 상황은 빈번하게 일어난다. 이러한 상황을 프로그램의 오류가 발생했다고 하는데 이러한 오류는 크게 컴파일 오류와 런타임 오류 두가지로 나뉜다. 컴파일 오류는 문법상의 오류이기 때문에 쉽게 잡아낼 수 있지만 런타임 중 발생하는 오류인 런타임 오류는 해결하기가 까다롭다. 자바에서는 런타임 오류를 두가지로 나뉘는데 바로 에러(Error)와 예외(Exception)이다. 에러는 코드로는 해결할 수 없는 오류이지만 예외는 프로그래머가 직접 예측하여 막을 수 있는 처리 가능한 오류이다. 그렇기 때문에 자바를 사.. 2023. 10. 8. [자바/Java] 추상클래스 && 인터페이스 추상 클래스란 추상 클래스는 일반 클래스와 별 차이가 없는 클래스이다. 차이점은 추상클래스도 일반 클래스처럼 멤버 변수, 생성자, 메소드들로 구성되어 있지만 바로 추상 메서드를 선언해 줄 수 있는 메소드인 것이다. 추상 메소드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스이기 때문에 미완성 설계도라고도 표현하는 클래스이다. 추상 클래스와 일반 클래스의 큰 차이점 중 하나는 추상 클래스는 상속을 위한 (상속을 통해 완성되는) 클래스이기 때문에 new 키워드를 통한 객체를 생성할 수 없다. 추상 클래스는 다음과 같이 abstract 키워드를 통해 선언할 수 있다. abstract class 클래스명 { ... } 추상 메소드 추상 메소드는 추상 클래스 내에서 선언할 수 있는 특별한 메소.. 2023. 10. 6. [자바/Java] 다형성(Polymorphism) 다형성이란? 다형성이란 자바의 주요 개념 중 하나로 여러개를 의미하는 poly와 형태 또는 실체를 의미하는 morphism의 결합어이다. 즉, 자바에서 다형성(polymorphism)이란 하나의 이름의 클래스나 메소드가 '여러 가지 형태의 동작을 하는 능력'이다. 메소드의 다형성은 이전에 배웠던 같은 클래스 내에서의 메소드 오버로딩, 상속 관계에서의 메소드 오버라이딩이 이에 해당한다. 클래스의 다형성은 한 타입의 참조 변수로 여러 타입의 객체를 참조하는 것이 가능하게 한다. 즉, 상속 관계에서 조상클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조하는 것이 가능한 것이다. 클래스의 다형성은 다음과 같은 조건에서 성립한다. 상위 클래스와 하위 클래스가 상속관계여야 한다. 다형성이 보장되기 위해 오버라이.. 2023. 10. 6. [자바/Java] 상속(inheritance) 상속이란? 상속은 자바의 핵심 개념 중 하나이다. 상속은 이름 그대로 부모가 자식에게 재산을 물려주는 것과 유사한 의미이다. 현실 세계에서 상속과의 차이점은 자바에서의 상속은 자식 클래스가 상속 받고 싶은 부모의 클래스를 선택해서 물려받는 것이다. 이 때에 상속 받는 클래스를 자식 클래스, 하위 클래스 또는 서브 클래스라고 부르고 상속을 해주는 클래스는 부모 클래스, 상위 클래스 또는 슈퍼 클래스라고 한다. 상속을 하는 이유는 유지 보수가 쉽고 중복이 적고 통일성이 생기기 때문이다. 예를 들어, 핸드폰에는 아이폰, 갤럭시 등 수많은 종류의 휴대폰이 있지만 모든 핸드폰이 공통적으로 가지고 있는 기능들이 존재한다. 이 때, 이 공통된 기능(메소드)들을 핸드폰(클래스)을 만들때마다 구현을 하는 건 너무 비효율.. 2023. 9. 29. [자바/Java] 클래스 클래스의 정의 자바 프로그래밍은 OOP(객체 지향 프로그래밍)이라고도 한다. 객체 지향 프로그래밍이란, 현실 세계에서도 특정 제품을 만들 때 여러 가지 부품들을 각각 만들어 하나로 조립하듯이 프로그밍적으로도 여러가지 객체(Object)를 각각 만들어서 하나로 조립하는 프로그래밍 기법이다. 이 때에 객체는 클래스를 통해 생성할 수 있게 된다.각 부품들의 기능과 또 그 부품이 가지는 또 다른 부품들로 이루어져 있듯이 객체를 생성하는 클래스도 다음과 같은 구조를 가지고 있다. 필드(Field) : 객체의 데이터가 저장되는 곳 생성자(Constructor) : new 연산자로 호출되는 메소드로 객체 생성 시 필드의 초기화를 담당 메소드(Method) : 객체의 동작에 해당하며 클래승의 다양한 동작을 구성 간단한.. 2023. 9. 29. [자바/Java] 메소드5 - 재귀 호출 재귀란? 재귀 호출, 재귀 함수에서 재귀(recursive)란 자기 자신을 또 다시 호출한다는 뜻이다. 즉 재귀 함수(메소드)는 함수(메소드) 내에서 메소드가 자기 자신을 또 다시 호출하는 것이다. 이렇게 재귀를 통해 자기 자신을 호출하는 이유는 복잡한 문제를 간단하고 논리적으로 기술이 가능하기 때문이다. 그렇기 때문에 코딩 테스트 문제를 풀다 보면 많이 사용되는 개념 중 하나이다. 여러 복잡한 문제들을 간단하고 논리적이게 표현이 가능하다고는 하지만 메모리 부담이라는 명확한 단점 또한 존재한다. 이러한 단점에 대한 이유는 재귀가 어떤게 작동하는 지를 통해 알 수 있다. 재귀의 작동 방식 메소드를 호출할 경우, 호출한 시점에 대한 상태를 메모리에 저장해 두어야 메소드 종료시 현재 상태로 돌아와 남은 작업을.. 2023. 9. 29. [자바/Java] 메소드4 - call by reference, call by value 프로그래밍 언어를 공부할 때 초반에 속을 썩이는 개념 중 하나가 바로 메소드(함수)의 매개변수가 call by value인지 call by reference인지에 대한 것이다. 특히 C를 공부할 때 많은 개발 입문자가 좌절을 맛 보는 pointer가 이러한 개념과 밀접하게 연관되어 있기 때문에 pointer에 대해서 이해를 못하면 이 개념 또한 이해하기가 어렵다. 하지만 자바에서는 포인터라는 키워드를 사용하지 않으므로 변수 타입에 따라 call by reference, call by value인지 정해지기 때문에 pointer와 같이 사용법이라는 것이 없기 때문에 해당 개념에 대해서만 정확하게 숙지하고 있으면 프로그래밍을 하는데 어려움은 없다. 변수 타입 - 참조냐 아니냐 변수의 타입은 세세하게는 int.. 2023. 9. 28. 이전 1 ··· 4 5 6 7 8 9 다음 728x90 반응형