잠깐만 복습)
1. 함수(메서드)의 3요소 = 메서드 시그니쳐
input, output, 기능
2. 함수화를 하는 이유
오류의 파급효과 감소
교합화(낮은 결합도, 높은 응집도)
비용절감
<조언>
-초기화는 하나하나씩;
stuList[0]=1;
stuList[1]=2;
stuList[2]=3;
-함수명을 정확하게 쓴다
-if 의 경우, 변수명은 is(has)empty로 해야한다
-빈화면을 보이지 않게 한다
-select one이 select one일까??
점수일 경우, 중복이 있지 않을까??
: 고찰할 부분
-num이 사용자가 아무리 잘 작성했어도 외부의 공격이 들어올수 도 있으니,
모델은 유효성 검사를 해줘야만 함 (2,3중으로 유효성 검사)
-MODEL은 VIEW를 믿지 않음.
if(num이 이상한 값이라면) {
retrun 0;
}
-난수생성의 경우, 컨트롤러의 영역
-메뉴입력을 하나의 기능으로 보는 경우
-모델은 무조건 5가지기능만(ssdcu)
<객체지향언어> >>객체지향 프로그래밍(OOP)
VS 절차지향적 프로그래밍
1-100 홀수 출력
1-100까지의 총합
3명의 학생 중 1등은?
=> 문제를 해결하는 이런 문제들의 유형
참고) C++#=>C가 따라한 JAVA언어
<특징>
1. 추상화 : 객체들의 공통되는 특징을 코딩할 수 있다.
객체들의 설계(틀)을 제공할 수 있다.
예)챔피언.q() 챔피언w().챔피언.e() 챔피언.r()
포켓몬.인사() -피카츄. 피카피카 / 꼬부기.꼬북꼬북
객체지향만 가능
동물의 숲 주민. 도구.A()/도구가 삽이면 땅을파고 잠자리채면 곤충을 잡고
2. 캡슐화 > 정보은닉 //(감기캡슐을 생각해보자)
1) 새로운 것을 개발할 때, 기존의 것을 그대로 활용할 수 있다.
--->기존의 것이 어떤 기능을 하는지만 알면됨
기존의 것에 대한 성분분석 불필요 (알면좋지만)
정보은닉 속성: 성분은 알 수 없지만 기능을 쓸 수 있음
2) 개발 이후, 이슈가 발생했을 때, 접합부분(부딪히는 부분)만 검사하면 됨
---> 개발시간과 비용단축
====>궁긍적으로 유지보수용이 ★
3. 상속
예) 계산기>>공학용계산기 =계산기 +공학용계산기 =>계산기
개발완료된 코드를 새로 개발하는 코드에 전부 가져올 수 있다.
예) 포켓몬은 객체지향의 결정체.
타입 : 물타입 : 꼬부기,고라파덕...(종족다르지만 물대포 쏠 수 있음)
물타입이라는 코드가 있고 물타입코드를 받는 포켓몬들은 공통 속성을 쓸 수 있음
4. 다형성 ★★★★★
함수(메서드)를 수행하는 "주체"(주어, 대상)가 어떤 객체인지에 따라 다른 수행결과가 나올 수 있다.
ex) add() : 절차 지향언어에서는 함수 수행결과를 바꿀 수없음
add(7)=>1~7 1에서 7까지의 합
결과를 바꿀 수가 없다
ex)강아지.울음(); 멍멍
고양이.울음(); 야옹------->객체지향언어에서는 메서드 수행결과가 다를 수 있다.
.(점) 앞에 "주체"가 있다.
느리지만 다양한 코드를 할 수 있다.
'JAVA > 강의' 카테고리의 다른 글
JAVA 강의 1일차- 연산자 (1) | 2025.01.29 |
---|---|
JAVA 강의 2일차 - 복습과 반복문 (0) | 2025.01.29 |
8일차 강의 - 개발패턴 (0) | 2025.01.25 |
MVC-V (0) | 2025.01.23 |
7일차 강의- 함수 선언, 정의, 호출 (0) | 2025.01.21 |