JAVA/강의

JAVA 9일차 강의 - 객체 지향 언어

record2080 2025. 1. 29. 02:18

잠깐만 복습)

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