일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ORA-1017
- MySQL
- SEQUENCE
- Kakao 지도 API
- 데이터베이스 접속
- database
- Java
- tuple
- 카카오맵 API
- typing test
- 유스케이스 다이어그램
- Oracle 18c
- 카카오맵
- Jupyter Notebook
- Usecase Diagram
- 매일 타자연습
- oracle 11g
- 자바
- oracle
- 10fastfingers.com
- The Network Adapter could not establish the connection
- python 기초
- 카카오 오븐
- Kakao Oven
- CSV
- SQL
- SQL Developer
- Oracle 오류
- Python
- Set
- Today
- Total
Another Brain
4일차_ 클래스(class), 객체(object), 멤버변수, 메서드, 패키지(package), MVC Pattern 본문
--------------------------
-- 클래스(class)
-- 객체(object)
-- 인스턴스(instance)
-- 멤버변수
-- 메서드
-- new keyword
--------------------------
## UML(Unified Modeling Language)
>> 객체지향 분석 설계시에 사용하기 위한 표준 표기방법
>> Class Diagram
-- UML Tools
>> 상용화 : Rose, Together, StarUML 등
>> 오픈소스 : StarUML
-- 소스파일 구조 : package, import
-- 클래스파일 구조 :
>> 속성, 기능
>> 멤버변수, 생성자, 메서드
-- 변수
-- 데이터타입
## 객체(Object)
-- 개념 : 현실 세계에 존재하는 사물 또는 개념
>> 개발자관점 :
>> 프로그램의 대상이 되는 모든것, 프로그램에서 관리해야하는 모든것
>> 관리를 하기 위해서 해당 객체의 정보가 영속성(저장)
-- 구성요소 = 속성 + 기능
>> 속성 : 객체 상태정보
>> 기능 : 객체 행위(operation, behavior)
>> 개발자관점
>> 속성 : 멤버변수
>> 기능 : 메서드([매개변수1, 매개변수x]) : 반환타입
## 웹 어플리케이션 개발
-- 포털사이트 운영
>> 어떤 성격(서비스) 포털사이트 운영??
-- 객체 추출 : 고객, 게시판
>> 대상이 되는 모든것(관리 해야하는 모든것)
>> 고객 **
>> 게시판 **
>> 검색 : 기능
-- 객체 구성요소(속성) 속성 추출 : 고객
>> 어떤 성격(서비스) 포털사이트 운영??
>> 속성 추출 : 속성명, 타입, 변수명, 제약사항(constraint)
>> 제약사항(constraint) : 필수/선택, unique(중복불가), 글자수(최대, 최소), 형식 등
>> 고객 => class명 : Member
>> 아이디 : String, memberId, 식별키 = 필수 + 중복불가
## 객체 분석
>> 분석가 : Class Diagram 모델링
>> 개발자 : class 작성
## 학생의 성적 관리 프로그램
-- 학생성적 객체 : StudentScore
1. 학생번호(학번) : int => String, 식별키(필수, 중복불가), studentNo
2. 이름 : String, 필수, name
3. 성적 : int, 선택, score
-- UML
>> 클래스 선언 형식 : ClassName
>> 멤버변수 선언 형식 : [access-modifier] 변수명:타입 [=명시적초기값]
>> 생성 선언 형식 : [access-modifier] 클래스명(매갭변수명:타입, 매개변수명:타입x)
>> 메서드 선언 형식 : [access-modifier] 메서드명(매갭변수명:타입, 매개변수명:타입x) : 반환타입
## MVC Pattern 기반 package
-- Model
>> 업무로직, 서비스
>> 데이터베이스 접근로직(Data Access Object : DAO Pattern)
>> 데이터를 가지고 이동하는 객체(Data Transfer Object : DTO pattern) / (Value Object : VO)
>> package com.work.model.service;
>> package com.work.model.dao;
>> package com.work.model.dto;
-- View
>> 프리젠테이션 로직 (보여주기위한 로직)
>> UI : CUI / GUI
>> CUI : main() 실행메서드 클래스
>> package com.work.view;
-- Controller
>> 요청 ~ 응답 제어
## 객체 생성 방법 및 객체의 구성요소(멤버변수, 메서드) 사용방법
-- 객체타입(참조형)
-- 클래스명은 객체타입이다!
-- 선언방법
[modifiers] 클래스이름 참조변수명;
-- 생성방법:
참조변수명 = new 클래스명();
-- 생성한 객체의 구성요소(멤버변수, 메서드) 사용방법
>> 참조변수명.멤버변수명 = 변경값;
>> 참조변수명.메서드명([parameters]);
>> 타입 변수명 = 참조변수명.메서드명([parameters]);
## new 객체 생성 절차
1. 메모리 할당 : 멤버변수
2. 기본값 자동 초기화
[3. 명시적 초기값 할당] -> optional
4. 생성자 수행
5. 참조값(reference value) 할당
## 메서드명
-- 객체가 해야하는 고유한 기능
--메서드명
--아규먼트(매개변수)
-- 반환타입 : 반환값 유무
>> 없으면 void
>> 존재하면 해당 반환타입 : return 반환갑; (마지막 수행문)
-- 반환값 : 타입다름
>> 단일속성
>> 다중속성
>> 여러개(집합) : 배열, collection API
## retutn 분기문
-- 메서드 내부에서 사용
-- 해당 메서드를 호출한 멤서드로 반환
-- return;
>> 반환타입이 없는 void 필요시에 더이상 수행하지 않고 호출 측 메서드로 반환
>> 선택
-- return 값;
>> 메서드에 반환타입이 있으면 반드시 마지막 수행문에
>> 필수
## 자동형변환(오토박싱)
작은타입은 큰타입으로 자동형변환
-- 적용 : 변수, 매개변수, 반환타입
-- 기본형 : byte => short, char => int => long => float => double
-- 참조형 : 자식 클래스 (sub-class) => 부모 클래스 (super class)
## overloading 중복정의 : 메서드명
-- 메서드이름 동일
-- 아규먼트(매개변수) 다름 : 갯수, 타입, 순서
## [DTO 객체의] 속성정보를 변경하는 메서드
-- setter()
-- 예시 : 성적(score) 변경 메서드
public void setScore(int modifyScore) {
score = modifyScore;
}
## [DTO 객체의] 속성정보를 조회하는 메서드
-- getter()
-- 예시 : 성적(score) 조회 메서드
public int getScore() {
return score;
}
'P > JAVA' 카테고리의 다른 글
mission_java_회원관리시스템_요구사항 : 구성요소 분석 및 설계 (0) | 2021.05.25 |
---|---|
mission_java_RandomTeamTest (0) | 2021.05.25 |
3일차(5월 21일)_ 배열(array) (0) | 2021.05.22 |
2일차(5월 18일)_ 자바 프로그래밍 기본, 식별자, 데이터타입, 변수, 연산자, 제어문 (조건문, 반복문) (0) | 2021.05.22 |
mission_java_Lotto645 (0) | 2021.05.22 |