13일차(Wrapper클래스)
2023. 12. 27. 17:31ㆍ자바 기초 및 세팅
Wrapper클래스
- 기본자료형을 가지고 만든 클래스
- int와 char를 제외한 다른 자료형은 첫글자만 대문자로 바꾸면 래퍼 클래스가 됨
- int => Integer, char => Charater
- 기본자료형과 Wrapper클래스의 차이는 래퍼 클래스는 객체를 생성하기 때문에 주소를 저장 => null가능
제네릭 클래스는 기본 자료형으로 생성할 수 없음. 정수로 된 제네릭 클래스를 만들고 싶어도 int는 클래스가 아니어서 안됨. 그래서 래퍼 클래스인 Integer로 하면 가능.
박싱과 언박싱
- 기본자료형을 래퍼클래스의 객체로 만드는 걸 박싱
- 래퍼클래스의 객체를 기본자료형으로 만드는 걸 언박싱
int num1 = 10;
Integer number1 = num1; //박싱, 기본자료형 num1을 Integer 클래스의 객체로 변환
int num2 = number1; //언박싱
(Math, Random)클래스
Math클래스
수학 관련 기능을 제공하는 클래스
int abs(int a), double abs(double a) : 절대값
double ceil(double a) : 소수점 첫번째 자리에서 올림.
double floor(double a) : 소서점 첫번째 자리에서 버림.
double random() : 0이상 1미만의 랜덤 수
long round(double a) : 소수점 첫번째 자리에서 반올림. 정수리턴
Random클래스
- 난수(랜덤수)를 생성하기 위한 기능을 제공하는 클래스
- Random() 생성자 : 현재 시간을 종자값으로 자동 설정
- Random(long seed) 생성자 : seed값을 종자값으로 설정
- 종자값이 같으면 반복해도 같은 랜덤한 수를 생성
- boolean nextBoolean() : boolean 타입의 난수 리턴
- double nextDouble() : double 타입의 난수 리턴.0이상 1미만
- int nextInt() : int 범위에서 난수 리턴.(-231~231-1)
- int nextInt(int n) : 0이상 n미만의 난수 리턴
package day13;
import java.util.Random;
public class RandomEx1 {
public static void main(String[] args) {
Random random = new Random();
int min = 1, max = 9;
for(int i = 0; i<10; i++) {
System.out.println(random.nextInt(max - min+1)+min);
}
}
}
date 클래스
- 기본 생성자만 주로 사용. 기본 생성자 이외의 생성자는 대부분 Deprecated(비권장) 됨.
- Date date = new Date(); //현재 날짜를 객체로 가져옴
- 날짜 -> 문자열로, 문자열 -> 날짜로 바꾸는 예제는 꼭 기억!
- yyyy : 년, MM : 월, dd : 일, hh : 시(오후2시 -> 2시),
- HH : 시(오후2시 -> 14시), mm : 분, ss : 초
- MM과 mm 바꾸면 안됨.
package day13;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
public class DateEx1 {
public static void main(String[] args) throws ParseException {
Date date = new Date();
System.out.println(date);
//Date => String
/* 화면에 보여줄 시간 패턴을 문자열로 지정
* yyyy : 년, MM : 월, dd : 일, hh : 시(오후2시 -> 2시),
* HH : 시(오후2시 -> 14시), mm : 분, ss : 초
* MM과 mm은 바꾸면 안됨
* */
//SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat format = new SimpleDateFormat("yyyy년MM월dd일 HH시mm분ss초");
String str = format.format(date);
System.out.println(str);
//String => Date
Date date2 = format.parse(str);
System.out.println(date2);
Board board = new Board("제목", "내용", new Date());
System.out.println(board);
Board board2 = new Board("제목2", "내용", null);
board2.setRegDate("2023-12-27 18:00:00");
}
}
@AllArgsConstructor
@Data
class Board{
String title, contents;
Date regDate;//작성일
public void setRegDate(String str) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
regDate = format.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Calendar 클래스
- 달력을 표현한 클래스
- new 연산자로 객체 생성 X. getInstance()를 이용하여 객체를 가져옴
- 년, 월, 일, 시, 분, 초, 요일 등의 다양한 정보를 쉽게 가져올 수 있음
- 그냥 날짜를 저장해서 관리할 땐 Date, 월이나 시, 분, 초등 다양한 값을 가져와야 할 땐 Calendar
캘린더 예제
package day13;
import java.util.Calendar;
public class CalenderEx1 {
public static void main(String[] args) {
//캘린더 예제
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
System.out.print(year+"년");
int month = cal.get(Calendar.MONTH)+1;
System.out.print(month + "월");
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.print(day + "일");
}
}
'자바 기초 및 세팅' 카테고리의 다른 글
14일차(제네릭) (0) | 2023.12.28 |
---|---|
14일차(DecimalFormat, 예외처리) (1) | 2023.12.28 |
13일차(정규표현식) (1) | 2023.12.27 |
13일차(기본클래스) (0) | 2023.12.27 |
13일차(인터페이스) (0) | 2023.12.27 |