본문 바로가기

그 땐 Programming Languages했지/그 땐 JAVA했지

[self-study/생활코딩] Ch14.나의 앱 만들기(2) | ① 오리엔테이션2 ② 조건문 ③ 배열 ④ 반복문 ⑤ 메소드 ⑥ 클래스 ⑦ 인스턴스

728x90

참고자료: Youtube - 생활코딩 JAVA1

 

조건문
		double dividend1;
		double dividend2;
		double dividend3;
		
		if(income > 10000.0) {
			dividend1 = income*0.5;
			dividend2 = income*0.3;
			dividend3 = income*0.2;
		} else {
			dividend1 = income*1.0;
			dividend2 = income*0;
			dividend3 = income*0;	
		}

📌수입이 만 원 이상인지 파악해 배당을 다르게 해보자

 

 배열
		//double형 데이터 3개를 담을 수 있는 배열을 만들었다!
		double[] dividendRates = new double[3];
		dividendRates[0] = 0.5;
		dividendRates[1] = 0.3;
		dividendRates[2] = 0.2;
		
		double dividend1 = income*dividendRates[0];
		double dividend2 = income*dividendRates[1];
		double dividend3 = income*dividendRates[2];

📌배열을 만들 때도 데이터 타입을 지정해준다! 또한 몇 개의 데이터를 넣을지 정의할 때 정한다.

👉🏻데이터타입 [] 배열이름 = new 데이터타입 [개수];

 

 반복문
		double[] dividendRates = new double[3];
		dividendRates[0] = 0.5;
		dividendRates[1] = 0.3;
		dividendRates[2] = 0.2;
		
		//데이터가 3개든 1억개든 print문은 하나만 작성해도 된다!
		int i = 0;
		while(i<dividendRates.length) {
			System.out.println("Dividend : " + (income*dividendRates[i]));
			i = i + 1;
		}

📌데이터 개수에 상관없이 짧은 코드로 작업을 다 수행할 수 있다.

 

메소드 
public class AccountingMethodApp {
	public static double valueOfSupply;
	public static double vatRate;
	private static double expenseRate;

	public static void main(String[] args) {
		valueOfSupply = 10000.0;
		vatRate = 0.1;
		expenseRate = 0.3;
		
		//만들어진 메소드 호출 
		print();
	}

	private static 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());
		System.out.println("Dividend1 : " + getDividend1());
		System.out.println("Dividend2 : " + getDividend2());
		System.out.println("Dividend3 : " + getDividend3());
	}

	private static double getDividend1() {
		return getIncome()*0.5;
	}
	
	private static double getDividend2() {
		return getIncome()*0.3;
	}

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

	private static double getIncome() {
		return valueOfSupply - getExpense();
	}

	private static double getExpense() {
		return valueOfSupply*expenseRate;
	}

	private static double getTotal() {
		return valueOfSupply + getVAT();
	}

	//메소드를 만드는 코드 
	private static double getVAT() {
		return valueOfSupply*vatRate;
	}

}

📌서로 연관된 코드를 모아서 이름을 붙인  정리정돈의 상자 다.

👉🏻지역변수: main 메소드 안에서만 사용할 수 있는 변수

✍🏻전역변수: 어느 메소드에서나 접근할 수 있는 변수, public static을 앞에 붙여준다.

 

 클래스
class Accounting {
	public static double valueOfSupply;
	public static double vatRate;
	private static double expenseRate;

	private static 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());
		System.out.println("Dividend1 : " + getDividend1());
		System.out.println("Dividend2 : " + getDividend2());
		System.out.println("Dividend3 : " + getDividend3());
	}

	private static double getDividend1() {
		return getIncome()*0.5;
	}
	
	private static double getDividend2() {
		return getIncome()*0.3;
	}

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


	private static double getIncome() {
		return valueOfSupply - getExpense();
	}

	private static double getExpense() {
		return valueOfSupply*expenseRate;
	}

	private static double getTotal() {
		return valueOfSupply + getVAT();
	}

	private static double getVAT() {
		return valueOfSupply*vatRate;
	}

}

public class AccountingClassApp {

	public static void main(String[] args) {
		Accounting.valueOfSupply = 10000.0;
		Accounting.vatRate = 0.1;
		Accounting.expenseRate = 0.3;
		Accounting.print();
	}
}

📌객체지향의 핵심  클래스 !

📌메소드가 여러가지면 성질이 비슷한 메소드끼리 하나의 클래스로 묶어준다.

 

인스턴스
class Accounting {
	public double valueOfSupply;
	public double vatRate;
	public double expenseRate;

	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());
		System.out.println("Dividend1 : " + getDividend1());
		System.out.println("Dividend2 : " + getDividend2());
		System.out.println("Dividend3 : " + getDividend3());
	}

	private double getDividend1() {
		return getIncome()*0.5;
	}
	
	private double getDividend2() {
		return getIncome()*0.3;
	}

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


	private double getIncome() {
		return valueOfSupply - getExpense();
	}

	private double getExpense() {
		return valueOfSupply*expenseRate;
	}

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

	//메소드를 만드는 코드 
	private double getVAT() {
		return valueOfSupply*vatRate;
	}

}

public class AccountingClassApp {

	public static void main(String[] args) {
		Accounting a1 = new Accounting();
		a1.valueOfSupply = 1000.0;
		a1.vatRate = 0.1;
		a1.expenseRate = 0.3;
		a1.print();

		Accounting a2 = new Accounting();
		a2.valueOfSupply = 2000.0;
		a2.vatRate = 0.05;
		a2.expenseRate = 0.2;
		a2.print();
	}
}

📌 인스턴스 란 하나의 클래스를 복제해서 서로 다른 데이터의 값과 메소드를 가진 복제본을 만드는 것이다.

👉🏻new를 통해 클래스를 복제한다.

728x90