OOP Practices OOP presentation 6 작성자 Kimjinsik 소속 Mobile computing Lab

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

프로그래밍 개론 Ⅰ 제 3장. 클래스와 객체의 사용 ①.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
최윤정 Java 프로그래밍 클래스 상속 최윤정
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
제 08 장 자바 빈즈 학기 인터넷비즈니스과 강 환수 교수.
Ch.07-5 xml-rpc 사용하기 김상엽.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
6장 객체-지향 설계 ①.
10장 예외 Lab 10-1.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
Power Java 제4장 자바 프로그래밍 기초.
7장 배열 ②.
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
4.1 자바 응용 프로그램 분석 4.2 식별자(identifier)와 예약어 4.3 변수와 자료형
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 9. 예외처리.
Lesson 6. 형변환.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
자바 5.0 프로그래밍.
제7장 클래스와 객체.
23장. 구조체와 사용자 정의 자료형 2.
Java 6장. 클래스 : 속성 public class SumTest {
Lesson 7. 클래스와 메소드 - 1.
제 4 장 클래스 작성 4-1 LAB.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
Choi, Namseok Java 기초 (객체와 클래스) Choi, Namseok
13. 연산자 오버로딩.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
Method & library.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
인터넷응용프로그래밍 JavaScript(Intro).
Lesson 4. 수식과 연산자.
27장. 모듈화 프로그래밍.
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
JA A V W. 06.
CHAP 21. 전화, SMS, 주소록.
12. 상속 : 고급.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
객체기반 SW설계 팀활동지 4.
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
Flow Diagram IV While.
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Lecture 04 객체지향 페러다임 Kwang-Man Ko
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
3. 모듈 (5장. 모듈).
함수, 모듈.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
Java 5장. 객체지향 개념 public class SumTest {
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
어서와 C언어는 처음이지 제21장.
7 생성자 함수.
6 객체.
Presentation transcript:

OOP Practices OOP presentation 6 작성자 Kimjinsik 소속 Mobile computing Lab destiny738.tistory.com

목차 캡슐화(Encapsulation) 계산기 만들기 키워드 : static 연습문제 풀이

Encapsulation 캡슐화에 따른 이익! 1. 캡슐화 캡슐처럼 안쪽의 내용물(데이터, 속성)이 뭔지 모르게 숨긴다. 가루약 싫어서 나 먹지? 내 안에 뭐 있는지 알고 먹어? Encapsulation 캡슐처럼 안쪽의 내용물(데이터, 속성)이 뭔지 모르게 숨긴다. 적당한 메소드를 통해서 외부와 통신을 한다. 캡슐화에 따른 이익! Modularity(모듈화) 클래스 하나가 하나의 모듈이 된다. 모듈 : 하나의 부품 ( ex. 나사 ) Information-hiding(정보은닉) 정해진 메소드를 제외하고는 객체와 통신이 불가능하다. 외부에서는 어떻게 객체가 움직이는지 알 수 없다. Code re-use(코드 재사용) 모듈화에 따른 부수적인 장점

Object structure 1. 추가 설명 <class variable> 객체가 생성되면 객체의 모든 함수에서 사용가능 한 변수 class Name{ String firstName; String lastName; Name(String fName, String lName){ firstName = fName; lastName = lName; } public String returnName(){ return fristName + “,” + lastName; <Method> 객체가 생성되면 외부와 통신이 가능하게 한다. <생성자> 객체가 생성될 때 호출 객체가 생성될 때 해야 할 일을 정의 클래스 변수를 초기화

다음의 문제를 프로그래밍하라 2. 계산기 만들기 간단한 계산기를 만들어 보자! C언어 때 배웠던 계산기를 클래스로 만들어 봅시다. 계산기는 정수형 연산과 실수형 연산이 가능하다. 계산기의 기능으로는 덧셈만 존재한다. main method에서 3과 4를 더하는 연산 3.3과 4.4를 더하는 연산 을 수행하여 각각의 결과를 출력하라!

Overload : 같은 이름으로 여러 동작!! 2. 계산기 만들기 class Calculation{ int sumInt(int a, int b){ return a+b; } double sumDouble(double a, double b){ public static void main(String []args){ Calculation c = new Calculation(); System.out.println(sumInt(3,4)); System.out.println(sumDouble(3.3,4.4);

Overload : 같은 이름으로 여러 동작!! 2. 계산기 만들기 class Calculation{ int sum (int a, int b){ return a+b; } double sum (double a, double b){ public static void main(String []args){ Calculation c = new Calculation(); System.out.println(sum (3,4)); System.out.println(sum (3.3,4.4); 난 생성자에서 유용하게 사용되지

Overload 2. 계산기 만들기 코더 사장 <프로그램 확장> 회사가 너무 잘나가서… 외국인도 사용하게 되어 이름 관리시 middle Name도 필요하게 되었다! class Name{ String firstName; String middleName; String lastName; Name(String fName, String mName, String lName){ firstName = fName; middleName = mName; lastName = lName; } public String returnName(){ … 한국인 무시함? 한국인도 중간이름 만들어? 도와줘 Overload!! 코더 사장

Overload 2. 계산기 만들기 코더 사장 class Name{ String firstName; String middleName; String lastName; Name(String fName, String mName, String lName){ firstName = fName; middleName = mName; lastName = lName; } Name(String fName, String lName){ middleName = “”; …. 코더 사장

Keyword static 3. Static C언어에서의 Static keyword? void printcount(){ int i = 0; i++; printf(“%d”,i); } int main(){ printcount(); void printcount(){ static int i = 0; i++; printf(“%d”,i); } int main(){ printcount(); 함수의 특정 값이 지속적으로 메모리에 유지시킨다.

Keyword static 3. Static Class에서의 Static은 Class에서 생성된 모든 객체가 공유하게 한다. 사용자에게 값을 받기 위해서는 Scanner객체를 생성해서 사용했다. 하지만, System.out.println은 어째서 객체 생성 없이 사용이 가능할까? Scanner s = new Scanner(System.in); int number = s.nextInt(); System.out.println(number); 여러분이 안 궁금하셨을지도 모르겠지만... 이를 설명해드리기 위해서 static을 설명했습니다. String name = “kimjinsik”;

Static 응용 3. Static i가 의미하는 것은? class Name{ String firstName; String lastName; static int i = 0; Name(String fName, String mName, String lName) { firstName = fName; lastName = lName; i++; } public String returnName() { return fristName + “,” + lastName; …

문제 4. 연습문제 풀이 학생을 나타내는 Student라는 클래스를 설계하고 구현하라. 학생은 학번, 이름과 세 개의 시험점수들을 가진다. 학생의 학번, 이름, 세 개의 시험점수들을 넘겨 받아 대응하는 변수의 값을 정하는 Student 객체를 생성하는 생성자 메소드를 작성하라. 시험 번호(1부터 3사이의 정수)와 그 번호에 대응하는 시험 점수를 매개변수로 받아 해당 변수의 값을 변경하는 메소드를 작성하라. 시험 번호를 매개변수로 받아 그 번호에 대응하는 시험점수를 반환하는 메소드를 작성하라. 세 개의 시험 점수들의 평균을 구하여 반환하는 메소드를 작성하라. 학생의 학번, 이름, 시험 점수들과 시험 평균 점수를 문자열의 형태로 반환하는 메소드를 작성하라.

문제 4. 연습문제 풀이 학생을 나타내는 Student라는 클래스를 설계하고 구현하라. <클래스 이름과 변수> 학생을 나타내는 Student라는 클래스를 설계하고 구현하라. 학생은 학번, 이름과 세 개의 시험점수들을 가진다. 학생의 학번, 이름, 세 개의 시험점수들을 넘겨 받아 대응하는 변수의 값을 정하는 Student 객체를 생성하는 생성자 메소드를 작성하라. 시험 번호(1부터 3사이의 정수)와 그 번호에 대응하는 시험 점수를 매개변수로 받아 해당 변수의 값을 변경하는 메소드를 작성하라. 시험 번호를 매개변수로 받아 그 번호에 대응하는 시험점수를 반환하는 메소드를 작성하라. 세 개의 시험 점수들의 평균을 구하여 반환하는 메소드를 작성하라. 학생의 학번, 이름, 시험 점수들과 시험 평균 점수를 문자열의 형태로 반환하는 메소드를 작성하라. <생성자 메소드> <Set 메소드> <Get 메소드> <평균계산 메소드> <toString 메소드>

감사합니다!