150 likes | 238 Views
Java Presentation 7. Private and Public keyword & UML. destiny738.tistory.com Kim Jinsik. 목 차. Keyword Private / Public Setter / Getter Star UML Solve Problem. Keyword Private and Public. Project 를 하나 생성하여 지난 시간에 만들었던 Student.java 와 Drive.java 파일을 열어보자 . Program 설명 Class Variable
E N D
Java Presentation 7 Private and Public keyword & UML destiny738.tistory.com Kim Jinsik
목 차 • Keyword Private / Public • Setter / Getter • Star UML • Solve Problem
Keyword Private and Public • Project를 하나 생성하여 지난 시간에 만들었던 Student.java와 Drive.java 파일을 열어보자. • Program 설명 • Class Variable • Method 1 생성자: 사용자에게 받은 값을 사용해 초기화 한다.
Keyword Private and Public • 프로그램 설명 • Method 2 setExam : 사용자에게 시험 번호와 시험 점수를 받아서 값을 바꾼다.
Keyword Private and Public • 프로그램 설명 • Method 3 getExam : 사용자에게 시험 번호를 받으면 시험 점수를 돌려준다. • Method 4 calcAverage : 평균 값을 계산하여 저장한다.
Keyword Private and Public • 프로그램 설명 • Method 5 toString : 현재 상태를 String형식으로 저장하여 반환한다.
Keyword Private and Public • Keyword : Private / Public • Private : 변수를 클래스 내에서만 사용 가능하게 한다. • Public : 변수를 프로젝트 전체에서 사용 가능하게 한다. • Java 클래스 변수 선언시Private와 Public을 적지 않으면 자동으로 Public!! • Private와 Public을 사용하여, 사용자에게 클래스(객체)에 대한 권한을 부여한다. 예시) Drive Class를 살펴보자. • Student Class의 모든 변수를 자기 마음대로 변경이 가능하다. • 나눠준 소스코드에서는 이름과 평균값을 마음대로 변경하였다. • 학생의 성적을 처리 할 때, • 변경이 가능하지 않는 것은 무엇이 있을까? • 변경이 가능해야 하는 것은 무엇이 있을까? 이것은 사용자 요구(문제)에 따라서 달라 질 것이다. 추가적으로, 클래스의 변수는 외부에서 변경이 불가능해야 한다. 따라서, Private로 모든 변수를 선언해줘야 한다.
Keyword Private and Public • 위와 같이 변경하면, Drive.java에 오류가 나는 것을 볼 수 있다. • 이는 더 이상 클래스 외부에서 변수를 변경하지 못한다는 것이다. • 그렇다면, 어떻게 클래스 변수를 알거나 변경할 수 있을까? • 생성자: 객체를 생성할 때 클래스 변수를 초기화 할 수 있다. • Setter, Getter • 프로그램 실행 중 프로그래머에게 알려주거나, 변경을 가능하게 할 내용은 Setter와 Getter로 제공한다. • 위 문제에서는 시험 성적 1, 2, 3의 값을 알아내거나(Getter) 값을 설정할 수 있게(Setter) 해준다.
Setter and Getter • Getter • 사용자에게 현재 저장돼있는 객체 변수 값을 반환한다. • Setter • 사용자가 객체 변수값을 변경하게 해준다. s.firstExam = 100; s.setExam(1, 100); • s.firstExam = 100; 해주는 것이 더 간단 할 수 있다. • 하지만 일반적으로 이렇게 해주지 않는다. • 시험은 100점이 만점인데 s.firstExam = 200; 으로 할 수도 있기 때문이다.
Setter and Getter • Setter • setter를 만든 목적은 변수 값을 마음대로 바꾸지 못하게 하기 위해서이다. • 현재 정의된 setter는 값의 범위에 제한이 없다. • 만약 시험이 100점 만점이라고 하면, 다음과 같이 변경될 것이다.
Star UML • Star UML • UML이란? • Unified Modeling Language • 소프트웨어 개발 과정에서 산출되는 산출물들을 명시, 개발, 문서화하기 위한 모델링 언어이다. • 여러 가지 다이어그램들을 제시함으로써 소프트웨어 개발과정의 산출물들을 비주얼 하게 제공한다. • 개발자들과 고객 또는 개발자들 간의 의사소통을 원활하게 해준다. • Star UML : UML을 그리는 무료 제공 툴 • 여러분이 작성하실 것은 많은 모델링 다이어그램 중에서 Class Diagram입니다. • Class Diagram이란? • 곧바로 프로그램 코드로 변환할 수 있는 다이어그램 • 클래스라고 하는 객체지향 설계단위를 이용하여 시스템의 정적인 모델을 표시 • (예시)
Star UML • 상용화된 UML Tool • Star UML • Enterprise Architecture(EA) • EA가 돈을 받고 파는 만큼 많은 기능을 제공해준다. • 또한, EA가 돈을 받고 팔기 때문에 사용이 편하다. • 하지만, 돈이 없기 때문에 Star UML을 사용한다. • Star UML • 다운로드 : http://sourceforge.net/projects/staruml/files/staruml/5.0/ • Download staruml-5.0-with-cm.exe (22.7 MB)클릭!! • Next, (I accept the agreement)Next, Next, Next, Next, Install
Star UML • Star UML • Star UML을 실행해보자! • 위와 같은 화면이 팝업되면, Cancel 또는 Default Approach를 눌러준다.
Star UML • Star UML : Setting ( Tools – options ) • Option Category ( Java – Code Generation) • Generate codes even when the .... 체크 > OK
문제 풀이 • 앞서 만든 Student class를 사용하여 다음을 만들어라. • 학생의 5명의 이름, 학번, 시험1, 시험2, 시험3을 사용자에게 입력 받아라. • 학생 각각의 성적을 출력하라. • 각 시험별 평균과 최고/최저 점수를 출력하라.