뉴렉처 강사님의 국비지원 강의를 들으며 매주 공부한 내용을 포스팅으로 남기고 있다.
강의를 듣기 시작한 지 얼마 되지 않은 것 같은데 벌써 5주차라니...!
5주차에는 또 어떤 내용을 배웠는지 복습하는 시간을 가져보자🙂
1. 절차를 자르는 도구인 함수의 특징
2. 자바에서 함수를 정의하고 사용하는 방법
static int add(int x, int y) {
return x + y;
}
// 1. 검사진행자 수가 가장 많았던 날을 얻는 코드
static String getDate(String[][] rows, int count) {
int index = 0;
String date = "";
int max = getMax(rows, count);
for(int i=0; i<count; i++) {
if(Integer.parseInt(rows[i][3]) == max) {
index = i;
break; // max를 찾았으면 그 위치에서 끝나게 하기
}
}
date = rows[index][0];
return date;
}
// 2. 검사진행자 수가 가장 많았던 날을 출력하는 코드
static void printDate(String[][] rows, int count) {
String date = getDate(rows, count);
System.out.printf("검사진행자 수가 가장 많았던 날: %s\n", date);
System.out.println();
}
1. 함수 재사용의 의미
LottoProgram.gen(); // LottoProgram - 사용하고자 하는 함수가 위치하는 클래스
LottoProgram.sort(lotto);
int[] lotto = null; // 내가 생각하는 lotto를 기본 형식으로 쓰게 되면 lotto의 의미를 제대로 표현하기 힘듦
Lotto lotto = null; // 더 의미있는 개념 단위의 데이터로 묶어서 쓰자
-> 이렇게 되면 고립화되어야 할 함수에서 구조체 속 인스턴스 변수의 변화에 따라 함수 속 코드의 내용도 변화하게 된다는 큰 문제점 발생
-> 이걸 해결할 방법은 바로 캡슐화이다!
1. 캡슐화
2. 캡슐을 깨지 못하게 하는 도구: 접근 제어 지시자
1. 객체지향
Lotto.sort(lotto);
lotto.sort();
2. 객체지향적으로 코드 작성하기
// Program.java
// 로또 정렬하기
lotto.sort();
// ---------------------------------------------
// Lotto.java
public void sort() { // static 키워드를 삭제하고, 매개변수에 전달해줬던 Lotto 객체도 삭제
for(int i=0; i<this.size-1; i++) // 객체를 명시하는 대신 this로 변경, this는 생략 가능
for(int j=0; j<this.size-1-i; j++)
if(this.nums[j] > this.nums[j+1]) {
int temp;
temp = this.nums[j];
this.nums[j] = this.nums[j+1];
this.nums[j+1] = temp;
}
}
1. 너비에 맞춰서 grid 그리기
grid-template-columns: 1fr 1fr;
grid-tempate-columns: 100px 100px 100px;
2. 아이템에 맞춰서 grid 그리기
grid-template-columns: repeat(auto-fit, minmax(100px, auto));
grid-template-rows: repeat(auto-fit, 100px);
3. grid에서 아이템을 정렬하는 방법
font 속성은 font-family, font-size, font-style, font-weight 등의 단축 속성이다.