입력에 무엇이 들어가고 출력에 무엇이 들어가는지..
Celsius To Fahremheit → public static double Celsius To Fahremheit (double c)
ADT 선언: 실제로 어떻게 표현할 지에 관한 선택을 하는 단계
[자료구조] 추상 자료형(Abstract Data Type, ADT)이란? (feat. 스택 & 큐)
ex) 학생에 관한 정보를 입력한다고 할 때,
학생에 관한 정보를 어떻게 할건지.
얼마나 효율적으로 프로그램이 돌아가는지 검증.
독립적인 단위로 테스트하고 전체 시스템으로 통합
과거에는 10,000줄 이상의 코드가 많았기에 이를 검증하는 것의 중요성이 컸음
C언어와의 유사점: 작은 단위로 검증한다는 점에서 비슷함
C언어와의 차이점: ↔ 객체지향적 분해
객체란 무엇인가?
객체 지향적 설계 ↔ 절차 지향적 설계
동물이 한 종류인 경우에는 문제가 되지 않지만, 동물의 종류가 늘어나는 경우 절차 지향적 설계에서는
추가해야할 함수가 많아진다. 각각의 구조체에 접근해서 하나하나 추가해야 한다는 불편함이 존재.
[Java] 클래스, 객체, 인스턴스의 차이 - Heee's Development Blog
다르게 동작하는 부분에 한해서 다른 값을 입력할 수 있다.
RubberDuck:Duck → 러버덕이 덕을 상속한 경우
특정 상황에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책을 모은 것이다.
C언어 ↔ 어셈블리어
캡슐화 & 추상화
데이터 캡슐화
→ 외부로부터 데이터 객체의 자세한 구현을 은닉
한 쪽에 정보를 몰아두고, 밖에서는 해당 정보에 접근을 어렵게 함.
의존성을 줄이기 위해서! 만든것이 데이터 캡슐화이다.
데이터 추상화
→ 객체의 명세와 구현을 분리
무엇(What)과 어떻게(How)를 명확하게 구분
ex) 대출을 해줍니다! 만 말하고, 재학생인지, 대출권수가 몇권인지 체크하는건 뒤에서.
data type: 객체와 연산에 대한 명세가 적혀있다. → public 어쩌구 저쩌구 부분
abstract: 분리가 되어있음을 알 수 있다. → {…} 부분
헤더(header)파일
소스(source)파일
.h라는 헤더파일에 .c 라는 소스코드 파일을 저장해두면 나중에 쉽게 편집할 수 있다.
(컴파일 → 링크에 해당하는 부분이다)