[JAVA/기초] 간단한 객체지향 인스턴스 OPPJAVA/JAVA 기초2023. 12. 22. 21:08
Table of Contents
728x90
반응형
객체지향 프로그래밍은 현실 세계의 모델을 반영하여 프로그램을 설계하고 구현하는 패러다임입니다. 여기서 객체는 현실 세계의 개념이나 사물을 프로그램 안에서 표현한 것으로, 이러한 객체들은 데이터와 해당 데이터를 처리하는 메서드(함수)로 이루어져 있습니다.
이를 코드로 구현한 예제를 통해 객체지향의 핵심 개념을 자세히 설명하겠습니다.
// 객체를 표현하는 클래스 정의
class Accounting {
// 객체의 속성(멤버 변수)
public double valueOfSupply;
public double vatRate;
public double expenseRate;
// 객체의 메서드
public double getIncome() {
return valueOfSupply - getExpense();
}
public double getExpense() {
return valueOfSupply * expenseRate;
}
public double getTotal() {
return valueOfSupply + getVAT();
}
public double getVAT() {
return valueOfSupply * vatRate;
}
public void print() {
System.out.println("Value of supply: " + valueOfSupply);
System.out.println("VAT: " + getVAT());
System.out.println("Total: " + getTotal());
System.out.println("Expense: " + getExpense());
System.out.println("Income: " + getIncome());
}
}
// 객체를 생성하고 활용하는 클래스
public class AccountingApp {
public static void main(String[] args) {
// 첫 번째 객체(instance) 생성
Accounting a1 = new Accounting();
a1.valueOfSupply = 10000.0;
a1.vatRate = 0.1;
a1.expenseRate = 0.3;
// 첫 번째 객체의 정보 출력
a1.print();
// 두 번째 객체(instance) 생성
Accounting a2 = new Accounting();
a2.valueOfSupply = 20000.0;
a2.vatRate = 0.05;
a2.expenseRate = 0.2;
// 두 번째 객체의 정보 출력
a2.print();
}
}
- 클래스 (Accounting):
- 클래스는 객체의 설계도로서, Accounting 클래스는 회계 정보를 표현하기 위한 템플릿입니다.
- 클래스에는 속성(멤버 변수)과 동작(메서드)이 정의되어 있습니다. 여기서 valueOfSupply, vatRate, expenseRate는 속성이며, getIncome(), getExpense(), getTotal(), getVAT(), print()는 메서드입니다.
- 인스턴스 생성 및 활용 (AccountingApp):
- 객체는 클래스의 인스턴스로서 생성됩니다. Accounting a1 = new Accounting();를 통해 첫 번째 객체 a1을 생성하고, a2를 통해 두 번째 객체를 생성합니다.
- 각 객체는 독립적인 데이터를 가질 수 있습니다. a1.valueOfSupply, a1.vatRate 등은 첫 번째 객체의 속성 값을 나타냅니다.
- a1.print();와 a2.print();를 통해 각 객체의 정보를 출력할 수 있습니다. 이때, print() 메서드는 해당 객체의 속성과 메서드를 활용하여 정보를 출력합니다.
- 인스턴스를 나눠서 생성함으로써 직접 Accounting을 호출하는 것보다 버그에 안전해 집니다.
이렇게 객체지향 프로그래밍은 현실 세계의 개념을 추상화하여 클래스로 표현하고, 각 클래스를 기반으로 다양한 객체를 생성하여 사용함으로써 유연하고 모듈화된 코드를 작성할 수 있습니다. 이는 코드의 가독성을 높이고, 유지보수를 용이하게 하는 장점을 제공합니다.
728x90
반응형
'JAVA > JAVA 기초' 카테고리의 다른 글
[Java/기초] Interface (0) | 2024.01.14 |
---|---|
[Java/기초] 상속 (1) | 2024.01.14 |
[JAVA/기초] 반복문 (0) | 2023.12.22 |
[JAVA/기초] 조건문 (0) | 2023.12.22 |
[JAVA/기초] Inheritance 상속 (0) | 2023.12.22 |
@코딩하는 자연대생 :: 자연대생도 코딩을 하고 싶어
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간