1. Wrapper 클래스란? => 앞에서 배운 기본자료형(원시형) ex. byte , short, int 등은 데이터 저장 및 4칙연산에서만 사용하는 것인다. 반면에 , wrapper 클래스는 데이터 저장 및 4칙연산 뿐만 아니라 아주 다양한 기능의 메소드가 제공되므로 다방면으로 사용되어진다. 다른 말로 하자면, 기본형 자료들을 참조형 자료들 처럼 이용하기 위한 것이다. wrapper 클래스의 예는 다음과 같다. Byte, Short , Integer , Long , Character 등등이 있다. 다음으로 , wrapper 클래스에 대해서 더 자세히 알기 위해서는 Boxing 과 UnBoxing에 대해서도 알아야할 필요가 있다.
1-1) Boxing이란 무엇인가?
-앞에서 말한 기본자료형으로 되어진 변수를 객체타입인 Wrapper 클래스 타입을 통해서 객체로 만들어주는 것을 말한다.
2-2) UnBoxing 이란 무엇인가?
- Wrapper 클래스로 되어져 있는 객체를 기본자료형을 만들어주는 것을 말한다.
* 학원 선생님께서 알려주시기로는 특정 회사 면접에서 Boxing 과 Unboxing 에 대해서 설명하라고 질문했다고도 알려주셨다. 그렇다면, 박싱, 언박싱이 어떠한 형태로 이루어지는지 살펴보도록 하자.
위에서 박싱과 언박싱하는 예를 보여주고 있다. 위의 예를 보면서 , 주의해야할 점이 있는데, Auto boxing 과 Auto unboxing이다. 사진에 나오는 a2를 언박싱하는 과정을 보자. 원래라면, intValue() ;를 입력해주면서 언박싱을 해줘야한다. 그러나, 위의 3번째를 살펴보면, 굳이 이 언박싱을 하지 않아도 auto unboxing 이 되는 모습을 볼 수 있다. 뿐만 아니라 , db3 을 보면, wrapper 클래스를 이용하지 않아도, auto boxing 이 되는 모습을 볼 수 있다. 이러한 오토 방식과 오토 언박싱에 대해서 알아봐야 한다.
2. Math 클래스란 무엇인가?
- 수학에서 자주 사용되는 상수와 함수들을 미리 구현해 놓은 것이다. 이 날 수업에서는 반올림, 올림 ,내림 , 절대값에 대해서 배웠다.
2-1) 반올림
double db1 = 93.5 , db2 = 93.4
System.out( Math.round(db1) +"," + Math.round(db2) ) ; // 출력 (94.0 , 93.0)
// Math.round 가 입력한 실수의 정수 일의자리까지만 보여주고 나머지 소수부는 반올림한다.
2-2) 올림
double db1 = 93.5 , db2 = 93.4
System.out( Math.ceil(db1) +"," + Math.ceil(db2) ) ; // 출력 (94.0 , 94.0)
// Math.ceil가 입력한 실수의 정수 일의자리까지만 보여주고 나머지 소수부는 올림한다.
**이 두 경우, 94.0 로 출력되는데 , 출력되는 값을 깔끔하게 94(정수)로 나타내고 싶다면,
(int)Math.ceil(db1) , (int)Math.round (db1) 다음과 같이 입력하면 소수부를 없앨 수 있다.
2-3) 내림
double db1 = 93.5 , db2 = 93.4
System.out( Math.floor(db1) +"," + Math.floor(db2) ) ; // 출력 (93.0 , 93.0)
// Math.floor가 입력한 실수의 정수 일의자리까지만 보여주고 나머지 소수부는 내림한다.
2-4) 절대값
int a = 20 , b= -30 ;
System.out( Math.abs(a) +"," + Math.abs(b) ) ; // 출력 (20 , 30)
// Math.abs 가 입력한 정수의 절대값을 나타낸다.
3. 앞으로의 공부 방향과 이번주의 반성
- 국비지원학원에서 가르켜주는 것에 대해서 나 혼자는 잘 이해하고 있다고 많이 생각했다. 그러나, 이는 나의 착각이였던 것 같다. 수업을 들을때면, 다 이해가 갔는데, 혼자서 어떠한 기능을 하는 메소드를 짜보라고 퀴즈를 내주셨는데, 어떻게 해야하는 지 잘 떠오르지 않았다. 이에 대하여, 국비지원학원 선생님께서 코딩은 눈으로 하는 게 아니라 손으로 하는 거라고 하셨고, 수업에 대해 복습할 때, 단순히 짰던 코드를 보고 이해하는 것만이 아닌 내가 나에게 퀴즈를 내고, 이를 직접 만들어보라고 하셨다. 그러하여, 앞으로는 앞서 말한 방식으로 복습을 해나가려고 한다. 뿐만 아니라, 수업을 제대로 익히지 못함을 느끼고 학원을 다니는 원생들과 함께 스터디를 해가기로 약속했다. 다른 스터디원들에게 민폐를 안 끼치려면 더욱 더 열심히 할 필요가 있겠다.
- 앞서 블로그글에 학원 공부만이 아니라, HTML & CSS 와 자바스크립트(JS) 에 대해서 공부 한다고 했지만, 이번 주는 한글자도 보지 못했다. 앞으로는 조금씩이라도 볼 수 있으려고 노력을 해야한다. 화이팅. 아자아자!! 앞으로는 더 많은 내용을 품는 블로그글이 될 수 있을 것이다.
* 앞으로도 계속하여 , 글을 올리려고 노력할 것이다. 혹시라도 , 이걸 보는 선배 개발자 분들이 계시다면, 제가 진행하는 부분에 있어서, 부족한 점이 많을 것이라고 생각합니다. 올리는 내용에 있어서도 잘못된 부분이 있을 수도 있습니다. 이러한 점에 있어서, 지적해주신다면 바로 고치도록 하겠습니다. 많은 응원과 격려 , 질타 부탁드리겠습니다. 감사합니다.

''국비지원'의 시작' 카테고리의 다른 글
자바 비긴즈 07 ( while문, do while문 ) (0) | 2023.01.10 |
---|---|
자바 비긴즈 06( FOR문, IF문 , SWITCH문 ) (0) | 2023.01.09 |
자바 비긴즈 04 ( 데이터형 변환, 연산자 , 스캐너) (0) | 2023.01.05 |
자바 비긴즈 03(constructor) (0) | 2023.01.04 |
자바 비긴즈 02 (인스턴스메소드와 스태틱메소드) (0) | 2023.01.03 |