일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다이나믹 프로그래밍
- 자바의정석연습문제풀이
- ★
- 백트래킹
- 백준자바
- 무료개발강의
- 시간 복잡도
- 자바의정석연습문제
- 백준9단계
- Java개념
- 동적계획법
- 무료코딩강의
- dfs
- 백준
- 자바공부
- 백준단계별로풀어보기
- 코딩공부
- 개발공부
- ☆
- 백준알고리즘
- 자바개념
- 자바
- BFS
- java
- 빅오 표기법
- 브루트포스
- 자바의정석
- 알고리즘공부
- dp
- 알고리즘
- Today
- Total
더 많이 실패하기
코딩공부 55일차: 자바의 정석 / 자바의 정석 75~80강 본문
개발 공부 55일차
자바의 정석 기초편 강의
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 7 - 12~14 패키지, 클래스 패스
(3판 기준 336~339쪽)
https://www.youtube.com/watch?v=hcHJgmX8VlA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=75
패키지는 서로 관련된 클래스의 묶음
클래스는 클래스파일(.class), 패키지는 폴더, 하위 패키지는 하위 폴더
클래스의 실제 이름은 패키지를 포함(예: java.lang.String)
rt.jar은 클래스들을 압축한 파일(JDK설치경로\jre\lib) - java9부터 module 개념
패키지의 선언
패키지는 소스파일의 첫 번째 문장으로 딱 한 번 선언
같은 소스 파일의 클래스들은 모두 같은 패키지에 속한다
패키지 선언이 없으면 이름없는(unnamed / default) 패키지에 속한다
클래스 패스는 클래스 파일의 위치를 알려주는 경로
환경변수 classpath로 관리하며, 경로간의 구분자로 ;을 이용 (제어판에서 설정 가능)
claapath(환경변수)에 패키지의 루트를 등록해줘야 한다
ch 7 - 15, 16 import문, static import문
(3판 기준 340~343쪽)
https://www.youtube.com/watch?v=BS1Pxm5XVNM&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=76
import문
클래스를 사용할 때 패키지 이름을 생략할 수 있게 해준다
컴파일러에게 클래스가 속한 패키지를 알려준다
java.lang패키지의 클래스는 import하지 않아도 사용할 수 있다(String, Object, System, Thread 등)
import문의 선언
import 패키지명.클래스명;
혹은
import 패키지명.*; //*은 모든 클래스
이클립스에서는 ctrl + shift + o를 누르면 된다
import문은 패키지문과 클래스선언 사이에 적는다
컴파일 시에 처리되므로 프로그램의 성능에 영향없다
이름이 같은 클래스가 속한 두 패키지를 import 할 때는 클래스 앞에 패키지명을 붙여줘야 한다
(예시: java.sql.Date / java.util.Date)
static import문
static 멤버(static 변수, static 메서드)를 사용할 때 클래스 이름을 생략할 수 있게 해준다
예시:
import static java.lang.Math.random; //라고 static import문을 선언하면
Math.random(); → random(); //과 같이 클래스 이름 생략 가능
ch 7 - 17~20 제어자, static, final, abstract
(3판 기준 344~347쪽)
제어자
클래스와 클래스 멤버(멤버 변수, 메서드)에 부가적인 의미 부여 - 형용사와 같은 역할
접근제어자 | 그외 |
public | static |
final | |
protected | abstract |
native | |
(default) | transient |
synchronized | |
private | volatile |
strictfp |
하나의 대상에 여러 제어자를 같이 사용가능(접근 제어자는 하나만)
순서는 상관없지만 보통 접근제어자를 가장 앞에 쓴다
static
클래스의, 공통적인
멤버변수(cv), 메서드(클래스 메서드/ iv, 인스턴스 메서드 사용 불가), 클래스 초기화 블럭에 붙일 수 있다
final
마지막의, 변경될 수 없는
클래스, 메서드, 멤버변수, 지역변수 모두 붙을 수 있다
abstract
클래스, 메서드에 붙을 수 있다
추상메서드를 가지고 있으면 무조건 추상 클래스가 된다 - 추상 클래스에선 객체를 생성할 수 없다
따라서 이때는 상속받아서 완전한 클래스를 만든 후 객체를 만들어야 한다
ch 7 - 21 접근제어자
(3판 기준 348쪽)
접근제어자
private | 같은 클래스 내에서만 접근 가능 |
(default) | 같은 패키지 내에서만 접근 가능 |
protected | 같은 패키지 + 다른 패키지의 자손 클래스에서 접근 가능 |
public | 접근 제한 없음 |
ㅇ
ch 7 - 22 캡슐화
(3판 기준 349~353쪽)
캡슐화
접근 제어자를 사용하는 이유
1. 외부로부터 데이터를 보호하기 위해서(캡슐화)
(예: 변수는 private으로, 메서드는 public으로 간접 접근만 허용)
2. 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서
내부에서만 사용되는 메서드라면 private으로 설정하여 나중에 수정할 때 그 클래스만 테스트할 수 있도록 한다
= 접근제어자 범위는 최대한 좁히는 것이 좋다
ch 7 - 23 다형성
(3판 기준 354~356쪽)
6장부터~7장 다형성까지 계속 반복해서 이해해야 다음 개념을 이해할 수 있다
★가장 중요한
다형성
여러 가지 형태를 가질 수 있는 능력
조상 타입 참조 변수로 자손 타입 객체를 다루는 것
Tv t = new SmartTv(); // Tv: 조상, SmartTv: 자손 // 이처럼 타입 불일치해도 괜찮음
→자손의 멤버(객체)를 다 쓰지 못하고 조상의 멤버 개수(리모콘)만 사용할 수 있다
→즉, 참조변수로 사용할 수 있는 멤버의 개수가 달라지는 것
자손 타입의 참조변수로는 조상 타입의 객체를 가리킬 수 없다
지금까지도 설명 엄청 좋았지만 다형성 비유는 정말 이해하기 쉬웠다
'자바 > 자바의정석' 카테고리의 다른 글
코딩공부 57일차: 자바의 정석 / 자바의 정석 86~90강 (0) | 2022.09.25 |
---|---|
코딩공부 56일차: 자바의 정석 / 자바의 정석 81~85강 (0) | 2022.09.24 |
코딩공부 54일차: 자바의 정석 / 자바의 정석 70~74강 (0) | 2022.09.22 |
코딩공부 53일차: 자바의 정석 / 자바의 정석 61~65강 (1) | 2022.09.22 |
코딩공부 51일차: 자바의 정석 / 자바의 정석 61~65강 (1) | 2022.09.20 |