일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 알고리즘공부
- BFS
- 백준
- 백트래킹
- ☆
- 백준9단계
- 자바의정석
- 브루트포스
- ★
- 백준단계별로풀어보기
- 자바공부
- 자바개념
- 무료코딩강의
- 자바의정석연습문제
- dfs
- java
- 무료개발강의
- 자바
- 백준알고리즘
- 알고리즘
- 빅오 표기법
- 자바의정석연습문제풀이
- 백준자바
- dp
- 동적계획법
- 다이나믹 프로그래밍
- 코딩공부
- 시간 복잡도
- Java개념
- 개발공부
- Today
- Total
더 많이 실패하기
코딩공부 53일차: 자바의 정석 / 자바의 정석 61~65강 본문
개발 공부 53일차
자바의 정석 기초편 강의
https://www.youtube.com/watch?v=oJlCC1DutbA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp
총 171개의 강의로 구성되어 있다
총 강의 시간은 80시간 정도
강의는 기초편을 기준으로 제작되어 있지만,
http://www.yes24.com/Product/Goods/24259565
Java의 정석 - YES24
최근 7년동안 자바 분야의 베스트 셀러 1위를 지켜온 `자바의 정석`의 최신판. 저자가 카페에서 12년간 직접 독자들에게 답변을 해오면서 초보자가 어려워하는 부분을 잘 파악하고 쓴 책. 뿐만 아
www.yes24.com
링크로 첨부한 자바의 정석 3판으로도 무리가 없다는 댓글이 있어 그대로 진행
ch 6 - 30, 31 오버로딩
(3판 기준 283~290쪽)
오버로딩은 한 클래스 안에 같은 이름의 메서드를 여러 개 정의
대표적으로 println이 있다
오버로딩이 성립하기 위한 조건
1. 메서드 이름이 같아야 한다
2. 매개변수의 개수 또는 타입이 달라야 한다 반환타입은 무관)
ch 6 - 32~35 생성자, 기본 생성자
(3판 기준 291~295쪽)
생성자는 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드'
즉, iv를 초기화하는 메서드
사용 예시
Time t = new Time(12, 34, 56); //생성자 호출
생성자
생성자 이름은 클래스 이름과 같아야 한다
리턴값이 없다(void x)
모든 클래스는 반드시 1개 이상의 생성자를 가진다
기본생성자
매개변수가 없는 생성자
클래스이름( ) { } //기본 생성자
생성자가 하나도 없다면 컴파일러가 자동으로 추가
클래스 만들 땐 기본생성자를 적어주는 습관을 들이는 게 좋다
매개변수가 있는 생성자
Time t = new Time(12, 34, 56); //매개변수가 있는 생성자 호출
1 Time t : 참조변수 t 생성
2 new : 객체 생성
3 Time(12, 34, 56): Time(12, 34, 56) 생성자(객체 초기화) 호출
4 =: 객체의 주소가 참조변수 c에 대입
ch 6 - 36, 37 생성자 this(), 참조변수 this
(3판 기준 295~299쪽)
생성자 this()
생성자에서 다른 생성자를 호출할 때 사용
다른 생성자 호출 시 첫 줄에서만 사용가능
아래 Car()가 다른 생성자 Car(String c, String g, int d)를 호출할 때
1
2
3
4
5
6
7
8
9
10
11
|
Car() {
color = "white";
gearType = "auto";
door = 4;
}
Car(String c, String g, int d) {
color = c;
gearType = g;
door = d;
}
|
cs |
↓ this를 사용하여 코드의 중복을 줄인다
1
2
3
4
5
6
7
8
9
|
Car() {
this("white", "auto", 4);
}
Car(String c, String g, int d) {
color = c;
gearType = g;
door = d;
}
|
cs |
참조변수 this (생성자 this()와 전혀 다르다)
인스턴스 자신을 가리키는 참조변수
인스턴스 메서드(생성자 포함)에서 사용가능 (클래스 메서드는 객체가 없을 수 있기 때문에 사용불가)
지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용

원래 iv는 참조변수.변수이름으로 써야 하지만 같은 클래스 내에서는 참조변수를 생략할 수 있으므로 왼쪽같이 쓸 수 있다
ch 6 - 38~41 변수의초기화, 멤버변수의 초기화
(3판 기준 300~307쪽)
지역변수(lv)는 수동 초기화해야 함(사용 전에 꼭!)
멤버변수(iv, cv)는 자동 초기화된다
멤버변수의 초기화
1. 명시적 초기화(=) //대입 변산자(선언 시 초기화) (간단한 초기화)
1
2
3
4
|
class Car {
int door = 4; //기본형 변수의 초기화
Engine e = new Engine(); //참조형 변수의 초기화
}
|
cs |
*참조형 변수는 null값과 객체주소 중 하나를 가질 수 있다
2. 초기화 블럭 (복잡한 초기화)
인스턴스 초기화 블럭: { } //iv 초기화 (덜 중요)
클래스 초기화 블럭 : static { } //cv 초기화
3. 생성자 (복잡한 초기화)
iv 초기화
멤버변수의 초기화
클래스 변수(cv) 초기화 시점: 클래스가 처음 로딩될 때 단 한 번
인스턴스 변수(iv) 초기화 시점: 인스턴스가 생성될 때마다
초기화 순서
cv → iv
자동 → 간단 → 복잡
6장 끝!
6장 내용을 간단하게 요약해서 계속 보고, 7장 공부를 병행하기를 추천한다
'자바 > 자바의정석' 카테고리의 다른 글
코딩공부 55일차: 자바의 정석 / 자바의 정석 75~80강 (1) | 2022.09.23 |
---|---|
코딩공부 54일차: 자바의 정석 / 자바의 정석 70~74강 (0) | 2022.09.22 |
코딩공부 51일차: 자바의 정석 / 자바의 정석 61~65강 (1) | 2022.09.20 |
코딩공부 50일차: 자바의 정석 / 자바의 정석 56~60강 (1) | 2022.09.20 |
코딩공부 49일차: 자바의 정석 / 자바의 정석 51~55강 (0) | 2022.09.18 |