5회차(2021.08.11)
5회차 목표
혼공자 chapter 04-2, 05 공부
알게된 점
•04-2 반복문: for문, while문, do-while문
-for문
for(초기화식;조건식;증감식){
실행문;
}
-while문
while(조건식){
실행문;
}
-do-while문:블록 내부의 실행문을 우선 실행하고 실행 결과에 따라서 반복 실행을 계속할지 결정한다.
do{
실행문;
}while(조건식);
-continue문:블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while문, do-while문의 조건식으로 이동한다.
•05-1 참조 타입과 참조 변수
-기본타입: 정수타입(byte,char,short,int,long)
실수타입(float,double)
논리타입(boolean)
실제 값을 변수 안에 저장한다.
-참조타입: 배열타입, 열거타입, 클래스, 인터페이스
메모리의 번지를 변수 안에 저장한다.
-번지비교: 비교 연산자(==,!=)가 기본 타입에서 사용되면 값을 비교하지만, 참조 타입에서 사용되면 번지를 비교한다.
String 타입에서 값을 직접 비교할려면 equals()를 사용한다.
-null: 참조 타입 변수는 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있다.
-NullPointerException: 참조 변수가 null을 가지고 있을 경우에는, 참조 객체가 없으므로 참조 변수를 통해 객체를 사용 할 수 없다. 만약 null인 참조 변수를 통해 있지도 않응 객체의 필드나 메소드를 사용하면 이 오류가 발생한다.
-객체 생성 연산자: new 연산자는 힙 힙 영역에 새로운 객체를 만들 때 사용한다.
ex)String 변수이름 = new String("문자열");
•05-2 배열
-배열이란: 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해놓은 자료구조이다.
배열은 같은 타입의 데이터만 저장할 수 있다.
한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다.
-배열 선언: 타입[] 변수; or 타입 변수[];
ex) int[] number;
-배열 생성: 1) 값 목록으로 배열을 생성
타입[] 변수 = {값1, 값2, 값3, ....};
(배열 변수를 이미 선언한 수에는 다른 실행문에서 중괄호를 사용한 배열 생성이 허용되지 않는다. 이 경
우, new 연산자를 사용해서 값 목록을 지정해주면 된다.
타입[] 변수;
변수 = new 타입[] {값0, 값1, 값2, 값3,....}; )
2)new 연산자로 배열을 생성
타입[] 변수 = new 타입[길이];
변수[인덱스] = 값;
-배열 길이: 배열 변수.length;
-다차원 배열: 배열 항목(값)이 또 다른 배열을 참조할 때 이것을 다차원 배열이라고 한다.
1)int[] scores = new int[2][3];
2)int[] scores = new int[2][];
scores[0] = new int[2];
scores[1] = new int[3];
3)타입[][] 변수 = {{값1,값2,..}, {값1,값2,..},...};
-배열 복사: 참조 타입 배열이 복사되면 복사되는 값이 객체의 번지이므로 새 배열의 항목은 이전 배열의 항목이 참조하는 객체와 동일하다.
1) for문 사용
2)Sysyem.arraycopy() 메소드 사용
Sysyem.arraycopy(원본 배열, 시작 인덱스, 새 배열, 시작 인덱스, 복사 개수);
-향상된 for문:
for(타입 변수: 배열){
실행문
}
•05-3 열거 타입
-열거 타입: 한정된 값이 열거 상수 중에서 하나의 상수를 저장하는 타입이다.
-열거 선언 및 열거 상수 정의: 파일 이름과 동일한 이름으로 다음과 같이 선언한다. 이때, 열거 상수는 모두 대문자로 작성한다.
public enum 열거타입이름{열거 상수1, 열거 상수2, 열거 상수3, 열거 상수4,...}
-열거 타입 변수 선언: 열거타입 변수;
-열거 상수 저장: 열거타입 변수 = 열거타입.열거상수; (열거 타입 변수는 null값을 저장할 수있다.)
-java.util.Calendar: 아래와 같이 getInstance()를 통해 구현된 객체를 얻는다.
Calendar cal = Calendar.getInstance();
아래와 같이 get()으로 날짜와 시간 필드를 가져온다.
int year = cal.get(Calendar.YEAR); //연
int month = cal.get(Calendar.MONTH);
//월(0부터 시작)
int date = cal.get(Calendar.DATE); //일
int day = cal.get(Calendar.DAY_OF_YEAR);
//그 해의 몇 번째 일
int week = cal.get(Calendar.DAY_OF_WEEK);
//요일(1~7)
int hour = cal.get(Calendar.HOUR); //시간(0~11)
int hour = cal.get(Calendar.HOUR_OF_DAY);
//시간(0~23)
int minute= cal.get(Calendar.MINUTE); //분
int second = cal.get(Calendar.SECOND); //초
int lastdayofmonth = cal.getActualMaximum(Calendar.DATE);
//이 달의 마지막날
아래와 같이 set()으로 날짜와 시간을 지정한다.
1)
void set(int fiels, int value)
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR,2021);
date.set(Calendar.MONTH,7);
date.set(Calendar.DATE,11);
//2021년 8월 11일(7월 아님, 0부터 시작)
2)
void set(int year, int month, int date)
void set(int year, int month, int date, int hourofday, int minute)
void set(int year, int month, int date, int hourofday, int minute, int second)
Calendar date = Calendar.getInstance();
date.set(2021,7,11); //2021년 8월 11일(7월 아님, 0부터 시작)
두 날짜간의 차이를 얻으려면, 아래와 같이 getTimeInMillis()를 통해 천분의 일초 단위로 변환한 다.
long difference = (date2.getTimeInMillis() - date1.getTimeInMillis())/1000;
느낀 점
이제 점점 모르는 개념들이 자주 나오기 시작했다.
앞으로 더 열심히 해야겠다.
'모각코 > 2021' 카테고리의 다른 글
[모각코] 6회차 회고록 (0) | 2021.08.23 |
---|---|
[모각코] 4회차 회고록 (4) | 2021.08.10 |
[모각코]2회차 회고록 (0) | 2021.07.26 |
[모각코] 1회차 회고록 (0) | 2021.07.11 |