230912
객체란?
ENIAC:
프로그램
FORTRAN:
-전역 변수: 배열/일반변수
-함수
-선택분기/루프/함수호출
입력, 출력, formatted output/input
ALGOL:
structured programming
나가는거
1) break;
2) continue;
3) end;
1) if(){ // }
2) else if(){ // }
3) else{ // }
변수 a
fun 함수() {
변수 a 사용
}
변수 b
fun 함수2() {
변수 b 사용
}
// 변수를 함수 내부에서 사용하면 외부에 영향을 미친다
// 순수함수 -> 컨텍스트 영향을 안 받고 컨텍스트에 영향을 안줌, 함수 내부와 파라미터만 보면 함수가 먼짓을 하는지 알수있음
추상화: 인간이 알아보기 쉽게 만들기
1) 이름 붙이기 (개념 부여)
2) 파라미터화 (변화되는 부분과 고정된 부분 고정하기)
데이터 타입
program = data + algorithm
data: 입력 데이터
algorithm - 입력 데이터를 출력 데이터로 변환하기 위한 절차
data: 출력 데이터
복합 데이터를 처리하는 공통의 함수들이 생김
fun 진급(complex:Employee)
fun 월급계산(complex:Employee)
fun 휴가잔여일자계산(complex:Employee)
..
커플링은 줄이고, 응집도는 높게
데이터 같이 쓰는 애끼리 묶자
module employeeModule
data Employee
fun 진급(complex:Employee)
fun 월급계산(complex:Employee)
fun 휴가잔여일자계산(complex:Employee)
...
import로 커플링을 확인할 수 있음
import EmployeeModule
new Employee()
...
data Employee {
private int salary;
private fun 진급에 따른 월급()..
public fun 진급()
public fun 월급계산()
public fun 휴가잔여일자계산()
}
응집도를 높이고 커플링을 줄이는 방법?