1) 객체 모델링
객체 : 사물을 뜻함
객체 모델링 : 객체를 클래스라는 프로그램으로 적용하는 것이다.
예) 급여의 속성 - 기본급,세금,초과근무시간
급여의 동작 - 초과근무시간 계산, 세금계산, 급여계산
객체 모델링 - 특징 | |
특징 |
맴버변수 |
기본급 |
basicSalary |
초과근무시간 |
overTime |
이름 |
name |
객체 모델링 - 동작 | |
동작 |
메소드 |
초과근무시간계산 |
overTimeAllowanceCompute() |
세금계산 |
taxCompute() |
급여계산 |
salaryCompute() |
2) 클래스의 정의
- 클래스 이름 : Salary
public class Salary
{
int basicSalary; // 기본급
String name; // 이름
int overTime; // 초과근무시간
// "초과근무수당 계산"을 메소드로 구현
public int overTimeAllowanceCompute()
{
return overTime*20000;
}
// "세금 계산"을 메소드로 구현
public double txzCompute()
{
return (basicSalary+overTimeAllowanceCompute())*0.1;
}
// "급여 계산"을 메소드루 구현
public int salaryCompute()
{
return (int)(basicSalary+overTimeAllowanceCompute()-taxCompute());
}
}
- 제어자 : 클래스 및 클래스의 멤버를 정의할 때 필요한 것(접근제어자, 키워드)
- 클래스 멤버 : 메소드, 멤버 변수
class modifier(클래스 제어자) |
public,abstract, final |
constructor modifier(생성자 제어자) |
public,protected,private |
method modifier(메소드 제어자) |
public,protected,private,abstract,static, final,native,synchronized |
member variable modifier (맴버 변수 제어자) |
public,protected,private,final,static, transient,volatile |
- 클래스 제어자
public : 클래스명과 파일명이 같아야 한다.
abstract : 추상 클래스, 상속을 통해 완성 된다.
final : 상속을 할 수 없는 클래스, 상속을 금지 한다.
예외) 조합을 해서 사용할수 있으나, abstract, final은 같이 쓸 수 없다.
- 생성자 : 객체를 생성할 때 반드시 필요한 것, 생성자를 기술하지 않으면 자바 가상머신이 기본 생성자(default constructor)를 생성한다.
- 메소드 제어자
native : java class에서 C/C++ 언어를 구현할 때 쓰임.
synchronized : 멀티 쓰레드를 제어할 때 사용하는 것.
- 멤버 변수 제어자
transient : 저장시 영구기억장치(하드디스크)에 저장되지 않는다.
volatile : 쓰레드 간에 공유하는 데이터로서 일관성을 유지할 때 사용된다.
- 클래스 사용 방법
선언한 클래스를 사용하기 위해서 클래스는 메모리를 할당 받아야 한다.
객체생성 : 클래스의 객체(인스턴스)를 생성해야 한다.
자바 : 클래스의 객체(인스턴스)를 생성할 때 new라는 키워드를 사용해서 생성한다.
Salary s = new Salary()
레퍼런스타입 클래스의 인스턴스, 객체생성 생성되는 객체 타입
레퍼런스 변수
해당 클래스에 생성자가 없으면 자바 가상머신이 디폴트 생성자를 생성한다.
UML 다이어그램 표현
Salary |
|
basicSalary name overTime |
멤버변수 |
+inputData +overTimeAllowancecompute +taxCompute +salaryCompute +outputData +main |
메소드 |
'객체지향언어 > Java' 카테고리의 다른 글
자바 첫걸음. "Hello World " 찍어 보기 헤헤 (0) | 2011.03.31 |
---|---|
java로 윤년구하기. (0) | 2010.08.10 |
쿠키 생성하는 방법 (0) | 2010.06.04 |
플랫폼 언어 자바 (0) | 2009.08.19 |
자바 프로그램 개발을 위한 EditPlus 설정은 요렇게... (0) | 2009.08.05 |