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

메소드


+ Recent posts