Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 클라우드자격증
- metasploit
- 취약점
- 개인정보보호법
- 로드밸런서
- ncp
- 와이어샤크
- RDS
- EC2
- 네이버클라우드
- isms
- ISMS-P
- azure
- 클라우드 자격증
- Burp Suite
- AWS SAA
- 클라우드보안
- 로그분석
- AWS SSA
- Iam
- 클라우드
- 파일시그니처
- 정보보안
- 정보보호
- 클라우드서비스
- 인스턴스
- 보안컨설팅
- mysql
- AWS
- 공개키
Archives
- Today
- Total
처음 만나는 클라우드 보안
[JAVA] 간단한 앱 만들기2 (기능 입히기) 본문
반응형
[지난 내용] 2022.07.04 - [분류 전체보기] - [JAVA] 간단한 앱 만들기 (feat. 생활코딩)
[JAVA] 간단한 앱 만들기 (feat. 생활코딩)
골목길에서 가장 중요한 것은 속도보다 목적지를 향한 경로이다. 목표: 판매가, 부가세, 이익 그리고 배당금까지 한 번에 계산할 수 있는 앱을 구현해보자. 1. 기본 기능 구현 변수 없이 핵심 연
cloudinfosec.tistory.com
지난 포스팅에선 '생활코딩'의 강좌에 따라 JAVA로 만들어진 간단한 계산 프로그램을 완성해보았다. 변수계산과 입력을 구현한 단순한 프로그램이지만 JAVA에는 다양한 문법과 그에 따르는 기능들이 제공된다고 한다. 이번 포스팅에선 JAVA의 기능들을 하나씩 입혀나가면서 프로그램을 발전시켜보고자 한다.
기능 순서: 조건문 => 배열 => 반복문 => 메소드 => 클래스 => 인스턴스
1. 조건문 (if)
public class AccountingApp {
public static void main(String[] args) {
double ValueOfSupply = Double.parseDouble(args[0]);
double vatRate = 0.1;
double expenseRate = 0.3;
double vat = ValueOfSupply*vatRate;
double total = ValueOfSupply + vat;
double expense = ValueOfSupply*expenseRate;
double income = ValueOfSupply - expense;
double dividend1 = income*0.5;
double dividend2 = income*0.3;
double dividend3 = income*0.2;
if(income > 10000.0) { //수입이 10000원 미만일경우 배당을 몰빵하는 조건문
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("Value of supply:" +ValueOfSupply);
System.out.println("VAT:" + vat);
System.out.println("Total:" + total);
System.out.println("Expense:" + expense);
System.out.println("Income:" + income);
System.out.println("Dividend 1:" + dividend1);
System.out.println("Dividend 2:" + dividend2);
System.out.println("Dividend 3:" + dividend3);
}
}
2. 배열(Array)
public class AccountingArrayApp {
public static void main(String[] args) {
double ValueOfSupply = Double.parseDouble(args[0]);
double vatRate = 0.1;
double expenseRate = 0.3;
double vat = ValueOfSupply*vatRate;
double total = ValueOfSupply + vat;
double expense = ValueOfSupply*expenseRate;
double income = ValueOfSupply - expense;
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];
System.out.println("Value of supply:" +ValueOfSupply);
System.out.println("VAT:" + vat);
System.out.println("Total:" + total);
System.out.println("Expense:" + expense);
System.out.println("Income:" + income);
System.out.println("Dividend 1:" + dividend1);
System.out.println("Dividend 2:" + dividend2);
System.out.println("Dividend 3:" + dividend3);
}
}
3. 반복문
public class AccountingArrayLoopApp {
public static void main(String[] args) {
double ValueOfSupply = Double.parseDouble(args[0]);
double vatRate = 0.1;
double expenseRate = 0.3;
double vat = ValueOfSupply*vatRate;
double total = ValueOfSupply + vat;
double expense = ValueOfSupply*expenseRate;
double income = ValueOfSupply - expense;
System.out.println("Value of supply:" +ValueOfSupply);
System.out.println("VAT:" + vat);
System.out.println("Total:" + total);
System.out.println("Expense:" + expense);
System.out.println("Income:" + income);
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 1:" + income*dividendRates[i]);
i = i + 1;
}
}
}
4. 메소드(Method)도입
메소드(Method)란? 서로 연관된 코드를 모아서 이름을 붙인 정리정돈 상자
메소드 자동생성: 타겟 영역 우클릭 > Refactor > Extract Method
단축키: Alt + Shift + M
메소드 생성 후 모습 => 주요 계산 코드가 아래로 모여져서 코드가 더 깔끔해졌다.
다만, main안에서 선언된 ValueOfSUpply는 로컬변수로 getVAT에서 적용이 어렵다. => 전역변수로 바꿔주기
타겟 영역 우클릭 > Refactor > Convert Local Variable to Field..
public class AccountingMethodApp2 {
public static double ValueOfSupply; //main밖에서 선언되었기 때문에
public static double vatRate; // 전역변수로서 아래 main, getVAT모두 선언된 셈이다.
public static double expenseRate;
public static void main(String[] args) {
ValueOfSupply = 10000.0;
vatRate = 0.1;
expenseRate = 0.3;
print();
}
public static void print() {
System.out.println("Value of supply:" +ValueOfSupply);
System.out.println("VAT:" + getVAT());
System.out.println("Total:" + getTotal());
System.out.println("Expense:" + getExp());
System.out.println("Income:" + getIncome());
System.out.println("Dividend 1:" + getDivend1());
System.out.println("Dividend 2:" + getDivend2());
System.out.println("Dividend 3:" + getDivend3());
}
private static double getDivend1() {
return getIncome()*0.5;
}
private static double getDivend2() {
return getIncome()*0.3;
}
private static double getDivend3() {
return getIncome()*0.2;
}
private static double getIncome() {
return ValueOfSupply - getExp();
}
private static double getExp() {
return ValueOfSupply*expenseRate;
}
private static double getTotal() {
return ValueOfSupply + getVAT();
}
private static double getVAT() {
return ValueOfSupply*vatRate; //메소드 생성부분
}
}
To be Continued.. => 클래스 &인스턴스
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 프로그래밍 - 전위연산과 후위연산 & 포인터 개념 (0) | 2022.07.09 |
---|---|
[JAVA] 간단한 앱 만들기3 (객체와 클래스 개념) (0) | 2022.07.06 |
[JAVA] 간단한 앱 만들기 (feat. 생활코딩) (0) | 2022.07.04 |
[JAVA] 클래스란? 변수 타입의 이해 (with 원시형 & 참조형) (0) | 2022.06.26 |
[JAVA] JVM이란? JAVA컴파일과정 (0) | 2022.06.21 |
Comments