배운 내용 정리
[ Part 2. 자바 기초 다지기 ]
ch 07. 논리적인 사고력 키우기 훈련
> 연산자의 종류
: 단항 연산자
: 이항 연산자
: 삼항 연산자
> 단항 연산자
: 증가 연산자 ++
: 변수의 값을 1씩 증가 시키는 연산자.
++a (전위), a++ (후위)
: 감소 연산자 --
: 변수의 값을 1씩 감소 시키는 연산자.
--a (전위), a-- (후위)
> 이항 연산자
: 가장 보편적으로 보는 연산자.
: 산술 연산자
+ - * /(몫) %(나머지)
: 관계 연산자
== != < > <= >= instanceof
: 논리 연산자
&& || !
: 복합 대입 연산자
+= -= *= /= %=
> 삼항 연산자
: 하나의 명령문을 이용해서
조건이 참인지 거짓인지에 따라 두 가지 방법으로 처리 가능.
: (조건) ? 참 : 거짓
ex. (a<0) ? -a : a → 절댓값 계산
> 명령문의 종류
: 조건문
if, if~else
: 선택문
switch~case
: 반복문
for, foreach
while, do~ while
: 제어문
break, continue



> 키보드로부터 데이터를 입력 받는 방법 실습




> 증감 연산자 실습


> 삼항 연산자 실습

> 정수의 자릿수 구하기 실습


※ 나머지를 구하는 연산자(%)는 실수형으로 나눌 수 없음.
ex. 7.0%2.0 = 오류 발생
> 복합 대입 연산자
: 자기 자신과 다른 어떠한 값을 연산한 후 다시 자기 자신한테 값을 대입함.
: 값을 '누적'할 수 있는 연산자.
: 변수(L-Value) = 수식(R-Value)
a=a+b; → a+=b; (O)
a=b+c; → a+=bc; (X)
: 서로 다른 변수를 복합 대입 연산자로 쓸 수 없음.
> 복합 대입 연산자 실습

> 관계 연산자
: 왼쪽 수식과 오른쪽 수식의 대소 관계를 비교하는 연산자.
: 비교 연산자라고 부르기도 함.
: 결과는 항상 참(true) 또는 거짓(false)으로 나옴.


> 관계 연산자 실습

> 논리 연산자
: 결과는 항상 참(true) 또는 거짓(false)으로 나옴.
: !(not 연산), &&(and 연산), ||(or 연산)
ex.
!a : a의 값이 참일 경우 거짓, 거짓이면 참.
a && b : a, b의 값이 모두 참일 경우 참, 그렇지 않으면 거짓.
a || b : a, b의 값이 하나라도 참일 경우 참, 그렇지 않으면 거짓.
> 논리 연산자 실습


> if 문 (조건문 단순 if문)
if(조건식){
문장 1;
문장 2;
// 조건식이 참이면 문장이 전부 실행
}
> 조건문 단순 if문 실습


> if ~ else 문 (조건문 블럭 if문)
if(조건식){
문장 1; → 조건식이 참일 경우 실행
}else{
문장 2; → 조건식이 거짓일 경우 실행
}
> 조건문 블럭 if문 실습




> 다중 if 문 (조건문 중첩 if문)
if(조건식 A){
문장 1; → 조건식 A가 참일 경우 실행
}else if(조건식 B){
문장 2; → 조건식 A가 거짓, 조건식 B는 참일 경우 실행
}else if(조건식 C){
문장 3; → 조건식 A, B가 거짓, 조건식 C는 참일 경우 실행
}…
else{
문장 n; → 조건식 A, B, C가 모두 거짓일 경우 실행
}
> 조건문 다중 if문 실습


> switch ~ case 문 (선택문)
: 주로 다중 선택에 사용함.
: if ~ else에 비해 사용 범위가 제한적임.
switch(수식){
case 상수 1:
문장 1;
break; → 필요한 경우 사용
case 상수 2:
문장 2;
break; → 만나면 선택문 밖으로 탈출함
…
default: → 필요한 경우 사용
문장 N;
}
> switch ~ case문 실습


> for 문 (반복문)
: 초기식은 처음에 딱 한 번만 수행됨.
: 조건식 → 반복할 문장 → 증감식 의 순서로 반복됨.
: 조건식이 거짓이 될 때 반복문 탈출.
for( 초기식 ; 조건식 ; 증감식 ){
반복할 문장;
}
> foreach 문 (향상된 for문)
: 컬렉션 안에 있는 여러 데이터를 하나씩(each) 꺼내서 처리함.
: 더이상 꺼내올 데이터가 없을 때 반복문 탈출.
: for 문보다 직관적으로 사용하기 편함.
for( 변수 : 컬렉션 ){
반복할 문장;
}
> for문, foreach문 실습




> while 문 (반복문)
초기식;
while(조건식){
반복할 문장;
증감식;
}
> do ~ while 문 (반복문)
: 반목할 문장을 실행한 수에 조건식을 검사함.
: 반복문 내의 문장을 최소 한 번 실행하고자 할 경우 유용함.
: while문이 중괄호 밖에 있기 때문에 세미콜론(;)을 꼭 써야 함.
초기식;
do{
반복할 문장;
증감식;
}while(조건식);
> while문, do ~ while문 실습


> 이중 for 문 (중첩반복문)
for(int i=0; i < 4 ; i++){
for(int j=0; j < 4; j++){
반복할 문장;
}
}
> 이중 for문 실습




> 제어문
: 반복문을 직접 제어하고자 하는 경우 사용함.
: 반복문의 흐름을 변환함.
: break문, continue문
> break 문
: 사용 중인 반복문을 중단하고 바로 반복문을 탈출함.
> continue 문
: 수행 중인 반복문에서 현재 조건에 대한 처리는 중단하고,
다음 조건에 대한 처리를 수행함.
: continue 아래에 있는 문장이 실행되지 않는 상태로
반복문의 조건식으로 다시 돌아가는 것.
> 제어문 실습

ch 08. 메서드와 변수의 관계를 이해하라
> 메서드 (Method)
: 객체가 가지고 있는 동작(기능)을 메서드(함수)라고 함.
: 정의하고 호출을 하여 사용됨.
: 프로그램에서 어떠한 것을 처리(동작)할 때, 메서드로 만들어서 처리함.
: 어떤 방법으로 처리되는지의 측면에서 바라보는 것.
: 기능 = function = 함수
: 동작 = 행위 = 메서드(방법)



> 메서드의 정의와 호출(Call)
접근제한자 리턴타입 메소드명(인수 1, 인수 2 … ){
수행코드;
return 반환값;
}
※ 매개변수가 없더라도 괄호 필수.


※ 메서드를 호출하기 위해서는 실인수와 가인수의 개수와 타입이 일치해야 함.

> 메서드 정의 실습

> 매개변수 전달기법
: Call By Value (값 전달)
: Call By Reference (번지 전달)

> 매개변수 전달기법 실습


> 메서드의 오버로딩 (Overloading)
: 동작이 비슷하면 같은 클래스 내에서도 동일한 이름의 메서드를 사용할 수 있음.
: 단, 매개변수의 개수나 타입(메서드의 시그니처)이 달라야 함.
: 메서드를 편리하게 사용하기 위한 객체지향 기법.
> 메서드의 오버로딩 실습



> API 오버로딩 메서드 실습

[ Part 3. 객체지향 프로그래밍 시작하기 ]
ch 01. 클래스로 객체 모델링하기
> DTO Model
: 데이터를 담아 쉽게 이동하기 위해서 만드는 클래스 구조.
: 모델은 해야 할 역할이 있는 것을 말함.
> 클래스_자료형 측면
: 새로운 자료형을 만드는 도구.
: 객체를 설계(모델링)하는 도구.



> 클래스_ 객체지향 측면
: 객체의 상태정보(멤버변수)와 행위정보(멤버메서드)를 설계하는 도구.


> 생성자 메서드 (Constructor)
: 메모리에 객체를 생성하는 역할.
: new 연산자에 의해 호출됨.
: 메서드의 이름이 클래스 이름과 동일해야 함.
(컴파일러가 생성자 메서드라는 것을 알 수 있도록)
: 접근제한자가 public인 경우에만 호출됨.
: 모든 클래스에는 기본 생성자(default constructor)가 생략되어 있음.
: 리턴타입이 없지만, void를 작성하지 않음.
: 객체의 초기화를 위해 사용됨.
public class Person{
public String name;
public Person(){
// 생략되어 있는 기본 생성자
}
public void play(){
System.out.printIn("운동을 한다.");
}
}
> this
: 객체가 생성된 후 자기 자신을 가리키기 위해 만들어지는 객체 변수.
: 우리 눈에는 보이지 않음.
※ 객체 변수 = 참조 변수 = 포인터 변수 = 레퍼런스 변수
> Heap Memory
: 객체가 만들어지는 메모리 영역.
: 여기에 만들어지는 객체를 인스턴스(instance, 객체의 실체)라고 함.
> 객체 생성/저장/출력/호출 실습

ch 02. 우리가 만들어보는 클래스의 종류
> 모델 (Model)
: 객체 지향 프로그래밍에서 클래스를 역할에 따라 부르는 이름.
: DTO, DAO, Utility
: 객체 (Object) = 클래스 (Class) = 모델 (Model)
> DTO, VO Model
: 데이터를 담아서 이동하는 모델.
: 데이터를 하나로 묶어야 되는 경우 필요한 모델.
: Data Transfer Object
: Value Object (하나의 값의 형태로 담는다는 의미)
> DTO, VO Model 실습



> DAO Model (Data Access Object)
: 데이터 베이스에 데이터(DTO, VO)를 저장(insert), 수정(update)하거나
검색(select), 삭제(delete)를 하기 위해 만들어지는 모델.
: SQL 명령문을 이용해서 데이터 베이스를 핸들링함.
: CRUD 동작을 가지고 있는 모델.
(Create, Read, Update, Delete)
: 비즈니스 로직을 처리하는 모델.
(비즈니스 로직 : 프로그램이 아주 바쁘게 동작이 되는 부분을 담당하는 클래스)
> DAO Model 실습



> Utility Model (Utility, Helper, Facade)
: 실제 용어가 아닌 DTO, VO, DAO의 역할 이외의 모델을 통틀어서 칭하는 것.
: 반복되는 동작(기능)을 별도의 클래스로 만들어 놓고 필요할 때 사용하는 모델.
: main 메서드에서 분리해서 코딩함.
: java.util 패키지에 많이 존재.
> Utility Model 실습



후기
이번 주 초반에는 새로운 것을 배우고,
후반에는 전에 배웠던 것의 한층 심화된 내용을 배우느라
머릿속이 너무 뒤죽박죽 했던 것 같다..
클래스나 메서드 등 나름 익숙해졌다고 생각했던 내용도
자세히 배우니까 너무 어려워서 강의를 여러 번 반복해서 들었다.
기억하는 내용이 별로 없는 건가 싶어서 자신감이 하락했다...
이번 주는 처음으로 벽을 느낀 기분..? 그래도 잘할 수 있을 거야..!
이번 달 목표는 수강률 65%를 달성하는 것이었는데,
집중력이 떨어졌던 탓인지 57%밖에 달성하지 못했다..
더 열심히 해야 하는데.. 다음 주에는 더 집중해 보자!
다음 주도 화이팅!
'패캠 학습일지' 카테고리의 다른 글
| [패스트캠퍼스] Spring 강의 6주차 학습일지 (0) | 2023.12.20 |
|---|---|
| [패스트캠퍼스] Spring 강의 5주차 학습일지 (0) | 2023.12.12 |
| [패스트캠퍼스] 자바 강의 4주차 학습일지 (0) | 2023.12.05 |
| [패스트캠퍼스] 자바 강의 2주차 학습일지 (0) | 2023.11.21 |
| [패스트캠퍼스] 자바 강의 1주차 학습일지 (0) | 2023.11.14 |