Java Category/Java80 [JAVA] Date, Calendar, LocalDateTime 클래스 (날짜와 시간 클래스) 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. 클래스 설명 Date 날짜 정보를 전달하기 위해 사용 Calendar 다양한 시간대별로 날짜와 시간을 얻을 때 사용 LocalDateTime 날짜와 시간을 조작할 때 사용 Date 클래스 Date 클래스는 날짜를 표현하는 클래스이다. Date는 객체 간에 날짜 정보를 주고받을 때 매개변수나 리턴 타입으로 주로 사용된다. Date 객체의 toString() 메소드는 영문으로 된 날짜를 리턴하기 때문에 원하는 날짜 형식의 문자열을 얻고 싶다면, java.text 패키지의 SimpleDateFromat 클래스와 함께 사용하는 것이 좋다. SimpleDateFromat 생성자의 매개값은 형.. Java Category/Java 2023. 1. 24. [JAVA] Math 클래스(올림, 내림, 반올림, 절댓값, 난수 등) 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있다. Math 클래스가 제공하는 메소드는 모두 정적(static) 메소드이므로 바로 사용할 수 있다. Math.abs(a) 메소드 int abs(int a) double abs(double a) a의 절댓값을 리턴 int v1 = Math.abs(-5); //5 double v2 = Math.abs(-3.14); //3.14 Math.ceil(a) 메소드 double ceil(double a) a의 올림값을 리턴 double v3 = Math.ceil(5.3); //6.0 double v4 = Mat.. Java Category/Java 2023. 1. 23. [JAVA]Wrapper(포장) 클래스 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. 자바는 기본 타입 의 값을 갖는 객체를 생성할 수 있다. 이런 객체를 포장 객체라고 하는데, 포장 객체의 특징은 포장하고 있는 기본 타입 값은 외부에서 변경할 수 없다는 점이다. 만약 내부의 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다. 박싱(Boxing)과 언박싱(Unboxing) 박싱 : 기본 타입의 값을 포장 객체로 만드는 과정 언박싱 : 포장 객체에서 기본 타입의 값을 얻어내는 과정 //Boxing Integer obj1 = new Integer(100); //생성자 이용 Integer obj2 = new Integer("200"); //생성자 이용 Integer .. Java Category/Java 2023. 1. 22. [JAVA] String 클래스 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. String 생성자 소스상에서 문자열 리터럴은 String 객체로 자동 생성되지만, String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성할 수도 있다. 어떤 생성자를 이용해서 String 객체를 생성할지는 제공되는 매개값의 타입에 달려있다. 아래는 사용 빈도수가 높은 생성자들이다. 파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte [] 배열이므로 이것을 문자열로 변환하기 위해 사용된다. //배열 전체를 String 객체로 생성 String str = new String(byte[] bytes); //지정된 문자셋으로 디코딩 String str.. Java Category/Java 2023. 1. 21. [JAVA] System, Class 클래스 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. System 클래스 자바 프로그램은 JVM위에서 실행된다. java.lang 패키지에 속하는 System 클래스의 정적 필드와 메소드를 이용하면 프로그램 종료, 키보드 입력, 콘솔(모니터) 출력, 현재 시간 읽기, 시스템 프로퍼티 읽기 등이 가능하다. System 클래스의 모든 필드와 메소드는 정적 필드와 정적 메소드로 구성되어 있다. 정적 멤버 용도 필드 out 콘솔에 문자 출력 err 콘솔에 에러 내용 출력(빨간 글자색) in 키보드 입력 메소드 exit(int status) 프로세스 종료(JVM 종료) currentTimeMillis() 현재 시간을 밀리초 단위의 long 값으.. Java Category/Java 2023. 1. 20. [JAVA] Object 클래스(euqals(), hashCode(), toString()) 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. 클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않더라도 암시적으로 java.lang.Object 클래스를 상속하게 된다. 따라서 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스이다. Object는 자바의 최상위 부모 클래스에 해당한다. Object 클래스는 여러 메소드가 정의되어 있는데, 그중에서 euqals(), hashCode(), toString() 메소드만 살펴보겠다. 객체 비교(equals()) 아래의 코드는 Object 클래스의 equals()메소드이다. public boolean equals(Object obj) {...} 매개타입이.. Java Category/Java 2023. 1. 17. [JAVA] 예외 종류와 예외처리(try-catch-finally) 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. 자바에서는 컴퓨터 하드웨어 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 에러(error)라고 하고, 에러 이외에 프로그래머가 잘못 코딩하거나 잘못 조작하여 발생하는 오류를 예외(exception)라고 부른다. 예외에는 두 가지 종류가 있다 일반 예외 : 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 소스를 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사를 함. 만약 예외 처리코드가 없다면 컴파일 오류가 발생 실행 예외 : 실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일하는 과정에서 예외 처리 코드가 있는지 검사하지 않음 자바에서는 예외.. Java Category/Java 2023. 1. 14. [JAVA] 익명 객체(Anonymous Object) 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. 익명 객체 클래스를 선언할 때 일반적으로 클래스 이름과 동일한 소스 파일을 생성하고 클래스를 선언한다. 한번 선언해놓고 여러 곳에서 객체를 만들어 사용하고 싶을 때 간단히 클래스 이름으로 생성자를 호출할 수 있기 때문이다. 그런데 클래스 이름이 없는 객체도 있다. 이것을 익명(anonymous) 객체라고 한다. 클래스 상속에서 자식 클래스를 명시적으로 선언하는 이유는 어디서건 이미 선언된 자식 클래스로 간단히 객체를 생성해서 사용할 수 있기 때문이다. 이것을 재사용성이 높다고 하는데, 자식 클래스가 재사용되지 않고 오로지 특정 위치에서 사용할 경우라면 자식 클래스를 명시적으로 선언하.. Java Category/Java 2023. 1. 13. [JAVA] 중첩 클래스(Nested Class) 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. ※java version "17.0.5" 2022-10-18 LTS 기준 문법임 중첩 클래스 객체 지향 프로그래밍에서 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 한다. 어떤 클래스는 여러 클래스와 관계를 맺지만 어떤 클래스는 특정 클래스와 관계를 맺는다. 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스와 관계를 맺을 경우에는 클래스 내부에 선언하는 것이 좋다. 중첩 클래스란 클래스 내부에 선언한 클래스를 말한다. 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복.. Java Category/Java 2023. 1. 12. [JAVA] 인터페이스 - 타입 변환과 다형성, 상속 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. 다형성을 구현하기 위해서는 메소드 재정의와 타입 변환이 필요하다. 인터페이스 역시 이 두 가지 기능이 제공되므로 상속과 더불어 다형성을 구현하는 데 많이 사용된다. 상속은 같은 종류의 하위 클래스를 만드는 기술이고, 인터페이스는 사용 방법이 동일한 클래스를 만드는 기술이라는 개념상 차이가 있지만 둘 다 다형성을 구현하는 방법은 비슷하다. 프로그램 소스 코드는 변함이 없는데, 구현 객체(클래스)를 교체함으로써 프로그램의 실행결과가 다양해지는 것을 인터페이스의 다형성이다. 위 그림에서 개발코드에서는 인터페이스를 통해서 객체 1을 사용하고 있었는데, 객체 1에 문제가 있음을 확인하면 객체.. Java Category/Java 2023. 1. 11. [JAVA] 인터페이스(Interface) 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. 자바에서 인터페이스는 객체의 사용 방법을 정의한 타입이다. 인터페이스를 통해 다양한 객체를 동일한 사용 방법으로 이용할 수 있다. 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다. 그렇기 때문에 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 된다. 개발 코드가 직접 객체의 메소드를 호출하면 간단한데 왜 중간에 인터페이스를 두는지 의문점이 생긴다. 그 이유는 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해서이다. 인터페이스는 하.. Java Category/Java 2023. 1. 10. [JAVA] 추상 클래스(Abstract Class), 추상 메소드(Abstract Method) 본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다. 사전적 의미로 추상은 실체 간에 공통되는 특성을 추출한 것을 말한다. 예를 들어 새, 곤충, 물고기 등의 실체에서 공통되는 특성을 추출해보면 동물이라는 공통점이 있다. 여기서 동물은 구체적인 실체라기보다는 실체들의 공통되는 특성을 가지고 있는 추상적인 것이라고 볼 수 있다. 추상 클래스 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 한다. 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있다. 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성을 물려받고,.. Java Category/Java 2023. 1. 9. 이전 1 2 3 4 5 6 7 다음