Spring/JAVA

앱 만들기 2 - 배당금 계산기 (제어문, 배열, 메소드, 클래스, 인스턴스)

alsruds 2023. 9. 25. 00:26
🐣생활코딩 강의🐣

JAVA1 - 14.6. 나의 앱 만들기 - 조건문
https://www.youtube.com/watch?v=y-qUWhanlkM&list=PLuHgQVnccGMAIluRRVsC1e79ri-dwnBmR&index=44
JAVA1 = 14.7. 나의 앱 만들기 - 배열
https://www.youtube.com/watch?v=sMBu20ZZwzE&list=PLuHgQVnccGMAIluRRVsC1e79ri-dwnBmR&index=45
JAVA1 - 14.8. 나의 앱 만들기 - 반복문
https://www.youtube.com/watch?v=4-5tmh5Krk8&list=PLuHgQVnccGMAIluRRVsC1e79ri-dwnBmR&index=46
JAVA - 14.9. 나의 앱 만들기 - 메소드
https://www.youtube.com/watch?v=XXFaCUcwWIk&list=PLuHgQVnccGMAIluRRVsC1e79ri-dwnBmR&index=47
JAVA - 14.10. 나의 앱 만들기 - 클래스
https://www.youtube.com/watch?v=l8hrA4VSIlA&list=PLuHgQVnccGMAIluRRVsC1e79ri-dwnBmR&index=48
JAVA1 - 14.11. 나의 앱 만들기 - 인스턴스
https://www.youtube.com/watch?v=TOptBzGgJOw&list=PLuHgQVnccGMAIluRRVsC1e79ri-dwnBmR&index=49

 

🐾 이어서 하기

2023.09.22 - [Spring/생활코딩 - JAVA1] - 앱 만들기 1 - 배당금 계산기 (변수, 입력값)

 

앱 만들기 1 - 배당금 계산기 (변수, 입력값)

🐣생활코딩 강의🐣 JAVA1 - 14.1. 나의 앱 만들기 - 오리엔테이션 https://www.youtube.com/watch?v=mphrv80VaQI&list=PLuHgQVnccGMAIluRRVsC1e79ri-dwnBmR&index=39 JAVA1 - 14.2. 나의 앱 만들기 - 기본 기능 구현 https://www.youtube.c

alsrudalsrudalsrud.tistory.com

 

 

제어문 활용하기

☝️ 조건문

public class Main {
    public static void main(String[] args) {

        ...
        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;
        }

        ...
        System.out.println("Dividend 1: "+dividend1);
        System.out.println("Dividend 2: "+dividend2);
        System.out.println("Dividend 3: "+dividend3);
    }
}

 

✌️ 반복문 (+ 배열)

public class Main {
    public static void main(String[] args) {

        ...

        // 변수가 많아질수록 복잡해질 것 -> 배열 도입
        double[] dividendRates = new double[3]
        dividendRates[0] = 0.5;
        dividendRates[1] = 0.3;
        dividendRates[2] = 0.2;

        int i = 0;
        while(i < dividendRates.length) {
            System.out.println("Dividend: "+ (income * dividendRates[i]));
            i += 1;
        }
    }
}

 

메소드 & 클래스 & 인스턴스 활용하기

  • 메소드 : 서로 연관된 코드를 grouping 하여 이름 붙인 것
  • 클래스 : 서로 연관된 변수와 메소드를 grouping 하여 이름 붙인 것
  • 인스턴스 : 하나의 클래스를 복제하여 서로 다른 데이터의 값과 서로 같은 메소드를 가진 복제본을 갖는 것

 

✔️ 메소드 & 클래스 생성하기

class Accounting {
    public static double valueOfSupply;
    public static double vatRate;
    public static double expenseRate;

    public static void print() {
        System.out.println("VAT: " + getVAT());
        System.out.println("Total: " + getTotal());
        System.out.println("Expense: " + getExpense());
        System.out.println("Income: " + getIncome());
        System.out.println("Dividend 1: " + getDividend1());
        System.out.println("Dividend 2: " + getDividend2());
        System.out.println("Dividend 3: " + getDividend3());
    }

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

    public static double getDividend2() {
        return getIncome() * 0.3;
    }

    public static double getDividend1() {
        return getIncome() * 0.5;
    }

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

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

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

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

public class Main {
    public static void main(String[] args) {

        Accounting.valueOfSupply = 10000.0;
        Accounting.vatRate = 0.1;
        Accounting.expenseRate = 0.3;
        // Refactor -> Extract Method
        Accounting.print();
        // anotherVariable = ...;
        // anotherMethod = ...;
    }
}

 

✔️ 인스턴스 적용하기

→ static 삭제하기

class Accounting {
    public double valueOfSupply;
    public double vatRate;
    public double expenseRate;

    public void print() {
        ...
    }

    public double getDividend3() {
        ...
    }

    public double getDividend2() {
        ...
    }

    public double getDividend1() {
        ...
    }

    public double getIncome() {
        ...
    }

    public double getExpense() {
       ...
    }

    public double getTotal() {
        ...
    }

    public double getVAT() {
        ...
    }
}

public class Main {
    public static void main(String[] args) {
        // 인스턴스 생성
        Accounting a1 = new Accounting();
        al.valueOfSupply = 10000.0;
        a1.vateRate = 0.1;
        a1.expenseRate = 0.3;
        a1.print();

        Accounting a2 = new Accounting();
        a2.valueOfSupply = 20000.0;
        a2.vateRate = 0.2;
        a2.expenseRate = 0.5;
        a2.print();
    }
}