본문 바로가기

전체 글

(30)
Calendar(GetInstance) Calendar: 날짜와 시간을 다루는 클래스 - 추상 클래스이기 때문에 직접 new 하여 객체 생성이 불가능 - Calendar.getInstance() 메소드를 이용 Calendar cal = Calendar.getInstance(); 오늘날짜에 대한 정보 public class Test { public void k1() { // Calendar클래스를 통해 getInstance()메서드를 사용하여 객체 생성 Calendar cal = Calendar.getInstance(); System.out.println(cal); java.util.GregorianCalendar[time=1678759624329,... ... YEAR=2023, //년 MONTH=2, // 월(0부터 시작) WEEK_OF_Y..
Random Random클래스: 난수를 얻어내는 클래스 public class Test { public void me1() { // Random클래스를 이용해서 rnd 객체 생성 Random rnd = new Random(); // ()안에 빈칸->현재시간 Random rnd2 = new Random(1); Random rnd4 = new Random(1); // seed가 같으면 나오는 값이 일치 long t = System.currentTimeMillis(); // 현재 시간을 millisecond로 반환 Random rnd3 = new Random(t); for (int i = 0; i < 5; i++) { int num = rnd.nextInt(); // 난수 리턴 System.out.println(num);..
예외처리(Exception) 예외와 에러의 차이 - 예외: 개발자가 대응할 수 있는 것. - 에러: 개발자가 대응할 수 없는 것.(단전, OS문제, JDK(JRE)의 문제) - 자바는 객체를 통해 예외를 처리한다. - 예외에서의 최상위 부모클래스: Exception 예외 발생 시 콘솔을 통해 알 수 있는 것. 1) 예외의 발생 위치 (java.lang.ArithmeticException: / by zero) 2) 예외의 발생 원인 (at kr.co.tj.Test.f2(Test.java:7)) public class Test { public void f2(int a, int b) { System.out.println(111); System.out.println(a/b); System.out.println(2222); } } =====..
내부클래스(Inner Class) 내부클래스: 클래스나 인터페이스 내에서 선언된 클래스. 1. instance 내부 클래스 - static 키워드 없이 외부클래스의 멤버로 선언되는 클래스 - 인스턴스 필드와 메서드만 선언 가능 - static 메서드는 가질 수 없다. public class GameSetup { private int device_width; private int device_height; // 멤버 내부클래스(인스턴스 클래스) public class GamePlay{ private int menu=1; public void execute() { System.out.println(device_width); // 외부클래스의 필드를 불러오기 위해 this가 필요없음 System.out.println(device_height)..
Enum(Enumeration) 정의: 상수 선언 시 입력하는 값에 대한 범위를 제역하기 위한 자료형 - 어떤 클래스가 상수로만 이루어져 있을 땐 반드시 클래스로 선언할 필요는 없다. -> 이럴 때, class를 enum이라고 선언하면 이 객체는 상수의 집합이다. - 생성방법 접근제한자 enum enum명{ 대문자enum상수명1, 대문자enum상수명2, ...; } - 예제 public enum Animals { TIGER, LION, CAT, DOG; } valueOf( ), name( ) - valueOf( ): 문자열을 enum으로 전환 - name( ): enum을 문자형으로 전환 public class MainEx { public static void main(String[] args) { // valueOf(): 문자열을 e..
람다식(Lambda) 람다식(Lambda Expression)이란 함수를 하나의 식(expression)으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function)의 한 종류라고 볼 수 있다. (이름이 필요없는 함수) - 함수형 인터페이스에 대해서만 선언 가능 - 인터페이스내에 메서드가 1개 있어야 한다. - 람다식 구현방법 인터페이스자료형 변수명 = (변수명1, 변수명2, ...) -> { 인터페이스가 갖고 있는 메서드를 호출했을 때 실행할 코드들 return 반환형에 맞는 값; (void라면 필요x) }; 장점 ① 불필요한 코드를 줄일 수 있다. ② 가독성을 높인다. ③ 메서드를 변수처럼 다루는 것이 가능해진다. ④ 지연연산 수행이 가능하다.(..
DTO(Data Transfer Object) 클래스 - 데이터 저장 전용 클래스 - gettets/setters, hashCode()&equals() 오버라이딩, toString() 오버라이딩의 메서드만 있다. 1. 클래스의 이름은 ~DTO, ~TO, ~VO 로 정한다. 2. Serializable 인터페이스를 구현한다. (마우스 올려놓기) - Serializable 안에는 아무것도 없다. - 그러나 jvm은 이 인터페이스를 구현한 클래스의 객체에 대해서만 직렬화를 지원한다. 3. UID값을 정해준다. (ex. 100L) (add defualt serial version ID) 4. DB의 해당 테이블을 보고 변수 선언을 한다. - 접근제한자: 무조건 private 5. 디폴트생성자 생성 6. 사용자생성자 생성 7. getters/setters 생성(외부..
인터페이스(Interface) - public static final 상수와 public 추상메서드로 이루어진 자원이다. (앞의 키워드들은 생략 가능) - 다형성, 오버라이딩 지원 - implements: class와 interface사이에서 상속할 때 - extends: class끼리 또는 interface끼리 상속할 때 - 다중 상속이 가능하다. public interface Inter2 { // 인터페이스의 구조 public static final int a = 10; // public static final상수 final int B = 20; // 상수 public void me1(); // public 추상메서드 public abstract void me2(); // 추상메서드 abstract int me21(); // 추상..