-
유데미 스타터스 취업 부트캠프 3기 - 백엔드 4주차스타터스 백엔드 3기 2022. 12. 16. 21:06
하루입니다.
221212
생성자, 접근제한자, this, super, 상속
Employee e1 = new Employee(); Employee e1 = new Employee(); 클래스명 객체주소참조변수명 객체생성연산자 클래스명();
생성자호출();
class 사람 {
이름 나이
잠자다 밥먹다
}부모클래스
상위클래스
super class
base class
class 회사원 extends 사람 {
이름 나이 급여 직급 사번
잠자다 밥먹다 일하다 출퇴근하다
}- 회사원 클래스는 사람 클래스를 상속받았다.
- 이는 사람 안의 데이터가 회사원 클래스 안으로 자동 포함됨을 뜻한다.
class 학생 extends 사람 {
이름 나이 학번 성적
잠자다 밥먹다 공부하다 통학하다
}- 학생 클래스는 사람 클래스를 상속받았다.
- 이는 사람 안의 데이터가 학생 클래스 안으로 자동 포함됨을 뜻한다.
- 사람 클래스의 자식 클래스이다.
- 초등학생 클래스의 부모 클래스이다.
학생과 회사원의 속성을 모두 가지는 조교 클래스가 있다.
class 조교 extends 회사원, 학생 {
이름 나이 학번 성적 급여 직급 사번
잠자다 밥먹다 공부하다 통학하다 일하다 출퇴근하다
}불가하다.
- extends 1개 클래스 상속 : 단일상속
- extends 2개 클래스 상속 : errorclass 초등학생 extends 학생 {
현장체험가다
}- 사람 클래스, 학생 클래스를 상속받는다. class A {
int i
void a( ) { }
}1. 객체를 만드는 경우
class B {
A a1 = new A();
a1.i;
}2. 상속받는 경우
class C extends A {
// 상속, 변수 자동 포함
}class 학생 extends 사람 학생은 사람"이다"
is a relatiionship이다.
'is a'라면 상속 관계이다.class Car {
전진하다();
정지하다();
}
class Driver {
운전하다();
전진하다();
정지하다();
Car car = new Car() {
car.전진하다();
car.정지하다();
}
}운전자는 자동차 "이다" ?
운전자는 자동차"를 가지다".
'has a'라면 소유 관계이다.
has a relationship이라면 객체를 생성하는 것이 맞다public protected default(no modifier) private 모든 클래스에 무제한 현재 패키지 + 나를 상속받은 다른 패키지의 하위 클래스만 사용 가능 현재 패키지 안의 다른 클래스에서만 사용 가능 현재 클래스 내부에서만 사용 가능 221213
클래스 형변환, 인터페이스
https://harutocoding.tistory.com/180
내가 생각하는 추상클래스와 인터페이스의 차이
1. 객체지향 프로그래밍 객체란 존재하는 모든 것. 핸드폰이라고 한다면 액정, 스피커, 케이스, 색상 등의 상태가 있고, 켠다(); 끈다(); 캡쳐한다(); 등의 행동을 가진다. 객체지향 프로그래밍이란
harutocoding.tistory.com
class Parent class Child1 extends Parent class Child2 extends Parent Parent p1 = new Parent();
System.out.println(p1.su);
p1.print();Child1 c1 = new Child1();
System.out.println(c1.su);
c1.print();Parent p2 = new Child1();
System.out.println(p2.su);
p2.print();su = 10
p1.print() = 10su = 20
c1.print() = 20su = 10
p2.print() = 20형변환을 했다는 건 앞의 객체를 참조하라는 뜻이다!!! 가리키라는 뜻이다!!! - p1이 만들어졌을때 p1은 10번지를 가리킨다. - parent 객체 먼저 만든다.
- child1 객체 만든다.
- c1은 child 가리킨다.
- child는 parent 가리킨다.- parent 객체 먼저 만든다.
- child1 객체 만든다.
- p2 변수가 parent를 가리킨다.
- parent의 su는 10이니까 syso(p2.su)는 10이다.
- print() 오버라이딩되었기에 child 클래스의 메소드를 사용한다. parent 클래스의 메소드는 감춰진다.221214
내부클래스, 익명클래스
https://harutocoding.tistory.com/185
자바의 내부클래스와 익명클래스의 이해
내부클래스(inner class) = 중첩클래스 어디서 어떻게 사용되는지를 모르니까 이해가 잘 되지 않는다. 익명클래스가 많이 사용된다고 하셨는데, 주로 익명클래스의 용도로 사용되는 걸까? 내부클래
harutocoding.tistory.com
221215
예외처리, 라이브러리(Object, lang)
- 예외는 두 가지로 나뉜다. exception을 상속받아 반드시 오류를 수정해야 하는 것, RuntimeException을 상속받아 컴파일러가 체크하지 않는 것.
- try catch finally로 직접 처리가 가능하다.
- throw와 throws로 간접처리 + 다형성이 가능하다.
- 사용자 정의 예외를 만들 수 있다.
221216
java.lang, java.util
java.lang.String
메소드들
indexOf() ==> int (어디 위치인지)
charAt() ==> char (어느 문자인지)
subString() ==> String (위치만큼의 문자열)
contains() ==> boolean (있는지 없는지)
join ==> static method라서 뭐 안 만들어도 댐
StringJoiner ==> 뭐 만들어야 댐
split ==> 배열[]로 반환된다. 쪼개져서 그럼
체력적인 어려움이 느껴지던 한 주였다. 진지하게 운동을 고민하고 있다. 자바, 스프링, 데이터베이스, 네트워크, 알고리즘, 자료구조, 배우지 못한 기술에 대한 욕심이 커져가지만 지금은 매일 한 것을 제대로 소화하는 것에 집중해야 한다. 하고 싶은 건 많은데 시간이 없다. 할 수 있는 걸 하자. 해야 하는 걸 하자.
* 유데미 바로가기 : https://bit.ly/3V220ri
본 후기는 유데미-웅진씽크빅 취업 부트캠프 3기 백엔드 과정 학습 일지 리뷰로 작성되었습니다.'스타터스 백엔드 3기' 카테고리의 다른 글
221219. 자바 12. 제네릭 <> (0) 2022.12.19 221219 자바 11. 컬렉션 프레임워크 (List, Set, Map) (0) 2022.12.19 221215. 자바9. 라이브러리(String, Object) (0) 2022.12.15 221215 자바8. 예외처리 (0) 2022.12.15 자바의 내부클래스와 익명클래스의 이해 (0) 2022.12.14