일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발자취업
- IntelliJ
- Flash
- 유데미부트캠프
- SeSAC
- 포트폴리오
- 유데미
- 취업특강
- springmvc
- gradle
- 스타터스부트캠프
- 새싹
- 용산캠
- IDE
- 부트캠프후기
- SpringBoot
- 백엔드부트캠프
- Backend
- 스프링
- 개발자부트캠프
- 꿀팁
- MVC패턴
- 취업부트캠프
- 백엔드
- redirectAttributes
- 자바
- Frontend
- Spring Framework
- 유데미코리아
- 청년취업사관학교
- Today
- Total
훌륭한 개발자 동료로 성장하길 꿈꾸며
유데미 STARTERS 취업 부트캠프 3기(백엔드과정) 4주차 학습 일지 본문
유데미 STARTERS 취업 부트캠프 3기(백엔드과정) 4주차 학습 일지
CHOIALTH 2022. 12. 18. 23:5814일차(22-12-12 월) - JAVA(4)
#지난시간복습
6장 객체지향
**public static void main(String args[]) (= 네임 메서드의 기본형식)**
- 메서드 overloading
1개클래스에 같은 이름의 메서드 여러개 정의 구문
-매개변수 개수나 타입이나 순서 중 1개 이상 다르게 정의해야함.
#Chap 6. 객체지향언어1(3)
Employee(클래스명) e1(객체주소참조변수명) = new (객체생성연산자) Employee()(생성자호출);
stack 영역에 e1 변수 할당 (null)
new 실행 - 메모리의 heap 영역에 Employee의 복사본을 만듦(변수+메서드 복사 할당). - 1000번지
Employee() 정의 내용 실행
= 대입연산자 실행 e1 =1000
1.this : 현재자신객체를 의미하는 자바키워드
매개변수 /지역변수 이름이 객체변수 이름과 같을 경우 정확히 의미를 구분하기위해 사용.
this.객체변수
쓰는 이유 ⇒ 정확한 의미 구분 하자
현재 객체에 다른 생성자 호출 (생성자 overloading이 됐을 때.. 생성자 내부의 첫문장으로만 씀)
this([매개변수])
쓰는 이유 ⇒ 반복 정의 피하고, 재사용성 높이기 위함
2.super : 상위클래스객체를 의미하는 자바 키워드
상속 부모, 자식클래스 같은 이름의 변수가 존재할때
자식클래스 변수 우선 사용
부모클래스 상속 변수 - super.상속변수명
단, private 변수 super 붙일 수 없다.
super.상속메서드명 - 오버라이딩 하위 메서드 말고 상위 메서드 호출
super() - 부모 생성자 호출. 첫문장에 자동 포함됨
super(매개변수) - 부모 매개변수 정의 생성자 호출. 첫 문장에 명시 문장 작성해야.
this() - 자신과 같은 클래스의 다른 생성자 호출. 생성자 첫문장
super(), this() 1개 생성자 내부 동시 선언 불가
#chap 7.객체지향언어2(1)
1. 객체지향 언어의 조건
- 캡슐화(연관 데이터 + 기능단위 = 클래스) +정보은닉
- 상속
- 다형성
2. overloading vs overriding
메서드 오버로딩(overloading ) | 메서드 오버라이딩(overriding) |
1개 클래스 내 같은 이름의 메서드 정의 매개변수 다르게 정의 리턴타입 무관하다 modifier 무관하다 |
상,하위 클래스 내 같은 이름의 메서드 정의 상속받은 메서드의 내용을 변경하는 것. 매개변수 동일하고 리턴타입 동일해야. modifier 같거나 더 넓어야 한다. |
유사 기능 매개변수 유형에 따라 여러개 사용 | 상위 메서드를 하위클래스에 맞게 수정하여 사용. 단, 선언문일치 필수! |
3. 접근 : 클래스 변수 메서드 생성자 다른 클래스 호출 사용 권한 제어
- public : 모든 클래스 접근 제한 전혀 X(무제한)
- protected : 현재 패키지 + 다른 패키지 하위(자손)클래스에서 접근(사용) 가능
- no modifier(default상태, package상태라 부름) : 현재 패키지 내부 다른 클래스에서 접근(사용) 가능
- priviate : 현재 클래스 내부에서만 접근(사용) 가능
15일차(22-12-13 화) - JAVA(5)
#지난시간복습
상속 - 기존에 클래스 정의 후에 새로운 클래스 정의 시에 기존 클래스 정의 변수+메서드 필요
#chap 7. 객체지향언어2(2)
1. static (뜻 : 클래스의, 공통적인)
-자바실행과정
1) code 검증
2) static 변수나 메서드 할당
3) main 실행 - 객체 생성 - non-static 변수나 메서드 할당
static 변수 | 1개 공유 - 클래스 영역 - 객체 생성 이전 할당1개 공유 - 클래스 영역 - 객체 생성 이전 할당 |
static 메서드 | 객체 생성 이전 할당 static 변수만 사용 메서드 - 객체 생성 이전 호출 간으 |
non-static 메서드 | static 변수 + non-static 변수 모두 사용 메서드. |
2. final (뜻 : 마지막의, 변경될 수 없는, 최종의)
final 변수 | 변수값 수정 불가능 = 상수 |
final 메서드 | 메서드 구현부 수정 불가능 = 메서드 overriding 불가능 |
final 클래스 | 클래스 수정 불가능. 상속 후에 자식 클래스에서 모든 메서드 overriding 불가능. 상속 불가능. 모든 메서드에 final 선언은 동일 의미. 객체 생성으로만 사용. subclassing 불가능. |
ex) 프로젝트 5명이 진행할때 약속된 공통의 라이브러리가 있다면 이에 final 붙이고 누구도 수정하지 않고 그대로의 라이브러리 사용한다.
ex) 절대불변의 진리값 표현 - 3.14
3. abstract(뜻 : 추상의, 미완성의)
추후 내용 추가 예정
✅객체지향언어의 조건
- 캡슐화 / 정보은닉
- 상속
- 다형성
4. 다형성(polymorphism)
✅ 기본형변수 형변환 규칙
- boolean 제외
- (데이터형)변수 —> 형변환연산자 자동형변환 규칙
- byte → short → int → long → float → double
- char → int → long → float → double
- 명시적(강제)형변환(?맞는지 확인필요)
✅ 참조형변수 형변환 규칙
- 상속관계
- 자동형변환 규칙 부모클래스 변수명1 = 자식클래스객체
- 자동형변환 이후 변수명1.변수 → 부모클래스 변수명1.메서드()→부모클래스 변수명1.overriding메서드()→자식클래스 ⇒ 부모 메서드를 자식 수정 재정의 - 자식 클래스 “우선”
- 명시적(강제)형변환자식클래스 변수명2 = (자식클래스명)변수명1변수명2.메서드()→ 부모클래스 + 자식클래스
- 변수명2.변수 → 부모클래스 + 자식클래스
- 부모클래스 변수명1 = 자식클래스객체
- 자동형변환 이후 부모클래스 변환 오버라이딩 메서드 자식클래스 우선
16일차(22-12-14 수) - JAVA(6)
#지난시간 복습
class | 변수 | 메서드 | 생성자 | 비고 | |
public | O | O | O | O | 모든 클래스에서 사용 가능 |
protected | 현재 패키지 다른 클래스에서 사용 가능 | ||||
no modifier = default 상태 = package 상태 | O | O | O | O | 현재패키지 다른클래스에서 사용 가능 |
private | X | O | O | O | 현재 클래스에서 사용 가능 |
#Chap 7. 객체지향언어2(3)
1. 인터페이스(interface)
- 자바 클래스 다중상속 불가능
- 추상 메서드만 포함 인터페이스 public abstract 자동 정의 메서드
- 인터페이스로부터 클래스 다중 상속
- 자식클래스 반드시 overriding 필수
- 인터페이스 객체 생성 불간으
- 생성자 필요X(클래스 기본생성자 "자동정의")
- [static(객체생성전) final public 자동으로 정의된] 변수
2.abstract 클래스 vs 인터페이스
종류 | abstract 클래스 | 인터페이스 |
특징 | 추상메서드와 구체적 정의 메서드 혼합 부분추상 1개 상속 단일상속 |
모든메서드 추상 메서드 완벽추상 다중상속 |
abstact class A{ abstract void m1(); void m2(){} } | interface I{ void m1(); void m2(); } | |
class B implements I class C extends D implements I | 1. 서로 다른 클래스에 공통 메서드 스펙 abstract class + interface 2. 서로 다른 클래스 중 일부 클래스 부모 클래스 정해진 상태라면 interface |
17일차(22-12-15 목) - JAVA(7)
#chap 8. 예외처리
오류 - “오동작” - 중단 - “경고”x 컴파일오류
- 소스 찾아서 수정 실행오류
- 실행은 되지만 코드 작성자 의도와 다르게 동작하는 경우를 포함.
- 프로그래밍적 해결 가능한 실행오류 → java에서 말하는 예외 ⇒ xxxException
- 프로그래밍적 해결 불가능한 실행오류 ex) 메모리 부족, 전원 차단 등..
직접처리 - try → catch → finally
간접처리 예외발생 메서드 외부 다른 메서드 처리 - throws
throws - 메서드 선언부 선언. throws 예외클래스명,,,, 예외 다른곳으로 전달
throw(s뗌) - 메서드 구현 문장 . 의도적으로 예외 발생시키겠다. ex) 10 / 0
try-catch-finally
throws
throw
class xxx extends Exception
//이상 8장 마무리
#chap 9. java.lang패키지&유용한클래스(1)
// 1-8장 - 자바 기본 + 객체지향 구문
//9장 라이브러리 등장
- 기능 라이브러리에서 제공하는지 체크 → 제공하면 사용 abstract class 형태로 제공 - 상속 활용 final class 형태로 제공 - 객체생성 활용
- 제공하지 X? → 직접 구현해야.
java.lang 패키지
- 자바언어 기본 기능( 자주사용하는) 클래스 모음
- import 안해도 됨
- object
- 자바 모든 클래스 “자동” 상속
- 자바 클래스 최상위클래스
- Object non-private 변수와 메서드들은 다른 자바클래스 “자동” 포함
- overriding 사용
5) toString()
- 객체를 문자열화. 객체 정보 문자열 표현
- 객체 출력 문장에서 자동 호출
- String toString()
- 패키지명.클래스명@16진수주소값
- overriding 다른 내용 출력
6) equals()
- 두 객체의 주소를 비교(overriding 다른 부분 비교 가능)
- boolean. true / false
- equals(Object o) : 객체와 비교할 매개변수 1개를 받는다.
- hashCode()
- 객체 해쉬값 리턴해주는 메서드
- 객체 주소 int 변환 리턴 = 객체 서로 다른값 / 객체 지문 / 객체 고유한 값
18일차(22-12-16 금) - JAVA(8)
#chap10. 날짜와 시간 & 형식화
추후 내용 추가 예정
#chap11. 컬렉션 프레임웍(collections framework)
*정의 : 데이터 군(群)을 저장하는 클래스들을 표준화한 설계.
컬렉션(여러데이터 모음) + 프레임웍(표준화된 프로그래밍방식)
List 계열의 클래스들 | Set 계열의 클래스들 | Map 계열의 클래스들 |
List 인터페이스 자식클래스들 | Set 인터페이스 자식클래스들 | Map 인터페이스 자식클래스들 |
LinkedList ArrayList xxxxList |
HashSet TechSet |
HashMap Hashtable Properties |
1. 순서 있다 - index 2. 동일 객체 중복 저장 가능 index, value |
1. 순서 없다 2. 동일 객체 중복 저장 불가능 value |
1. {key, value} 2. key 식별자 중복 허용X 3. value 동일 객체 중복 저장 가능 |
ArrayList
Array list = new ArrayList();
Array list = new ArrayList(5);
Array list = new ArrayList(5, 2);
- 데이터타입 한정 X
- 개수동적
- 참조형변수 데이터만 저장(아래의 방법으로기본형 변수도 저장 가능)Integer in = i; //기본형 변수를 참조형 변수로 변환
- int i = 10;
- 메서드
- 저장메서드 : add(”java”) add(1) add(3.14) add(new A()) add(Object o )
- 수정메서드 : set(1, ‘a’);
- 삭제메서드 : remove(1);
- 저장메서드 : get(0); (”java” 리턴) — 특정 인덱스 저장된 객체 조회 Object ← get(0) 특정 인덱스에 저장된 객체 조회 int ← = size() 저장된 데이터의 개수 int ← indexOf(”jsp”) : 0, 1, 2, …-1
4주차 짧게 돌아보기
- 객체지향이 지나가니 숨이 조금 트인다. 그래서 더더욱 객체지향 파트 복습이 필요하다
- 유데미 자바 강의를 좀 더 자주 듣도록 짬을내자
- 벌써 1달이 가까이 지났다구요.....?😇
- 사진 1장이상은 꼭남기며 수업 듣자 ㅎㅎ..
* 유데미 바로가기 : https://bit.ly/3V220ri
* STARTERS 취업 부트캠프 공식 블로그 보러가기 : https://blog.naver.com/udemy-wjtb
본 후기는 유데미-웅진씽크빅 취업 부트캠프 3기 백엔드 과정 학습 일지 리뷰로 작성되었습니다.
'Education > udemy x 웅진 STARTERS 3th' 카테고리의 다른 글
유데미 STARTERS 취업 부트캠프 3기(백엔드과정) 6주차 학습 일지 (0) | 2023.01.01 |
---|---|
유데미 STARTERS 취업 부트캠프 3기(백엔드과정) 5주차 학습 일지 (1) | 2022.12.25 |
유데미 STARTERS 취업 부트캠프 3기(백엔드과정) 3주차 학습 일지 (0) | 2022.12.11 |
유데미 STARTERS 취업 부트캠프 3기(백엔드과정) 2주차 학습 일지 (0) | 2022.12.04 |
유데미 STARTERS 취업 부트캠프 3기(백엔드과정) 1주차 학습 일지 (3) | 2022.11.27 |