본문 바로가기

Java/Java1

Instance

728x90
반응형

인스턴스의 개념 역시 배웠지만..

 

여기서 부터 내가 이해한게 맞는지 의문이 많이 들기 시작한다. 

 

우선 Class 개념은 제대로 이해한거 같으니 여기서부터 다시 출발하겠다. 

인스턴스는 "하나의 클래스를 복제해서 서로 다른 데이터의 값과 서로 같은 method를 가진 복제본을 만드는 것이다."

 

그니까 아까 굿즈박스에 비유하면 NCT DREAM 파우치가 이미 있으니까 NCT U 파우치를 하나 더 만드는건데,

대신 멤버가 다를테니 포카를 꺼내게 하는 method는 똑같이 복제를 하고, 

멤버 (=value)는 달라도 여전히 기능은 같은 파우치를 만드는 것이다..

 

라고 생각하니 갑자기 인스턴스도 이해가 바로 되는 듯한 기분이다. 

 

무.한.확.장 NCT 를 빨면서 얻는 이점도 있다는게 신기하다 ㅋ

 

 

여튼 코드를 보자 

 

class Accounting{
	public double ValueOfSupply;
	public double vatRate;
	public double expenseRate;
	
	public void getPrint() {
		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());	
		System.out.println("Dividend1 :" + getDividend1());	
		System.out.println("Dividend2 :" + getDividend2());
		System.out.println("Dividend3 :" + getDividend3());
	}

	private double getDividend3() {
		double dividend3 = getIncome()*0.2;
		return dividend3;
	}

	private double getDividend2() {
		double dividend2 = getIncome()*0.3;
		return dividend2;
	}

	private double getDividend1() {
		double dividend1 = getIncome()*0.5;
		return dividend1;
	}

	private double getExpense() {
		double expense = ValueOfSupply*expenseRate;
		return expense;
	}

	private double getIncome() {
		double income = ValueOfSupply-getExpense();
		return income;
	}

	private double getTotal() {
		return ValueOfSupply + getVAT();
	}

	private double getVAT() {
		return ValueOfSupply*vatRate;
	}
}
	
public class AccountinInstancegApp {	
	
	public static void main(String[] args) {
		//instance
		Accounting a1 = new Accounting();
		a1.ValueOfSupply = 20000.0;
		a1.vatRate = 0.2;
		a1.expenseRate = 0.5;
		a1.getPrint();
	}
}


 이미 Accounting 이라는 Class가 존재하는데, 이거의 기능은 똑같이 복제를 하되

그 값만 좀 바꾸고 싶으면 그냥 복사해 와서 쓰면 된다~ 뭐 이런 뜻이다. 

 

그래서 위에서 Class를 지정해주고, 

Accounting a1 = new Accounting(); 이라고 선언하면

a1에 Accounting의 method를 그대로 카피한 새로운 인스턴스를 만들어주는 것이다...

 

라고 우선 이해했습니다?

 

 

고지가 멀지 않았다.. 화이팅

728x90
반응형

'Java > Java1' 카테고리의 다른 글

Java1 완강  (0) 2020.11.21
Class  (0) 2020.11.21
Method  (0) 2020.11.21
조건문, 배열, 반복문  (0) 2020.11.19
MyApp 만들기 - 2  (0) 2020.11.18