[ガイドコース/簡単学習のJava 1]14マイアプリケーションの作成(2)-メソッド、クラス、インスタンス
Boostレッスンを簡単に学ぶJava 1
Chaper 14
14-9. 기기기기기기기기기기기
方法
メソッドはクラスの動作を表す関数です.
従来のMathクラスのfloor,ceil,PrintWriterのwrite,closeなどの方法がある.
AccountingMethodApp.JAvaソースコード
public class AccountingMethodApp {
public static double valueOfSupply;
public static double vatRate;
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 : " + getExpense());
System.out.println("Income : " + getIncome());
System.out.println("Dividend 1 : " + getDiviend1());
System.out.println("Dividend 2 : " + getDiviend2());
System.out.println("Dividend 3 : " + getDiviend3());
}
public static double getDiviend1() {
return getIncome() * 0.5;
}
public static double getDiviend2() {
return getIncome() * 0.3;
}
public static double getDiviend3() {
return getIncome() * 0.2;
}
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;
}
}
メソッドとして抽出
仮に、私たちが計算する仕事は1行のコードではなく、1億行のコードです.
その1億行のコードを1行として表示し、元の1億行のコードを他の場所に隠すと便利ではないでしょうか.
使用方法は、上記の操作を行うことができる.
AccountingMethodApp.Javaソース分析
メソッドを使用したコードの変更
public class AccountingMethodApp {
public static void main(String[] args) {
...
double vat = getVAT(valueOfSupply, vatRate);
...
}
public static double getVAT(double valueOfSupply, double vatRate) {
return valueOfSupply * vatRate;
}
}
Refactor - Convert Local Variable to Filed
をクリックします.出力にまとめるローカルメソッド
public class AccountingMethodApp {
...
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 : " + getExpense());
System.out.println("Income : " + getIncome());
System.out.println("Dividend 1 : " + getDividend1());
System.out.println("Dividend 2 : " + getDividend2());
System.out.println("Dividend 3 : " + getDividend3());
}
...
}
14-10. アプリケーションクラスの作成
プログラムがお金を計算する以外に多くの操作を実行する必要がある場合、プログラムはさらに複雑になります.
これにより,コード内のメソッドと変数も混在して複雑になる.
この状況はクラスで解決できる.
カテゴリ
クラスは相互に関連する変数とメソッドの集合です.
AccountingClassApp.JAvaソースコード
class Accounting{
public static double valueOfSupply;
public static double vatRate;
public static double expenseRate;
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 : " + getExpense());
System.out.println("Income : " + getIncome());
System.out.println("Dividend 1 : " + getDiviend1());
System.out.println("Dividend 2 : " + getDiviend2());
System.out.println("Dividend 3 : " + getDiviend3());
}
public static double getDiviend1() {
return getIncome() * 0.5;
}
public static double getDiviend2() {
return getIncome() * 0.3;
}
public static double getDiviend3() {
return getIncome() * 0.2;
}
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 AccountingClassApp {
public static void main(String[] args) {
Accounting.valueOfSupply = 10000.0;
Accounting.vatRate = 0.1;
Accounting.expenseRate = 0.3;
Accounting.print();
// anotherVariable = ...;
// anotherMethod = ...;
}
}
eclipseの上部Window - Show View - Outline
をクリックします.AccountingClassApp.Javaソース分析
エディタに戻り、上部にAccountingクラスを作成します.
Accountingクラスの作成
class Accounting{
public static double valueOfSupply;
public static double vatRate;
public static double expenseRate;
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 : " + getExpense());
System.out.println("Income : " + getIncome());
System.out.println("Dividend 1 : " + getDiviend1());
System.out.println("Dividend 2 : " + getDiviend2());
System.out.println("Dividend 3 : " + getDiviend3());
}
public static double getDiviend1() {
return getIncome() * 0.5;
}
public static double getDiviend2() {
return getIncome() * 0.3;
}
public static double getDiviend3() {
return getIncome() * 0.2;
}
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 AccountingClassApp {
...
}
public class AccountingClassApp {
public static void main(String[] args) {
Accounting.valueOfSupply = 10000.0;
Accounting.vatRate = 0.1;
Accounting.expenseRate = 0.3;
Accounting.print();
}
}
14-11. アプリケーションインスタンスの作成
≪インスタンス|Instance|emdw≫
インスタンスは、実際にクラスを実行するエンティティとクラスといえます.
インスタンスを使用すると、異なる状態にある複数のクラスを迂回できます.
すなわち、インスタンスは、クラスをコピーすることによって、異なるデータ、異なるメソッドのコピーを作成します.
上のAccountingClassAppクラスを変更します.
AccountingClassApp.JAvaソースコード
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("Dividend 1 : " + getDiviend1());
System.out.println("Dividend 2 : " + getDiviend2());
System.out.println("Dividend 3 : " + getDiviend3());
}
public double getDiviend1() {
return getIncome() * 0.5;
}
public double getDiviend2() {
return getIncome() * 0.3;
}
public double getDiviend3() {
return getIncome() * 0.2;
}
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 class AccountingClassApp {
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();
Accounting a2 = new Accounting();
a2.valueOfSupply = 20000.0;
a2.vatRate = 0.05;
a2.expenseRate = 0.2;
a2.print();
a1.print();
}
}
様々な条件に基づいて異なる出力を出力したいとします.AccountingClassApp.Javaソース分析
Accountingクラス
public double valueOfSupply;
public double vatRate;
public double expenseRate;
Accounting a1 = new Accounting();
Accounting a2 = new Accounting();
....
Accounting a1 = new Accounting();
a1.valueOfSupply = 10000.0;
a1.vatRate = 0.1;
a1.expenseRate = 0.3;
a1.print();
Accounting a2 = new Accounting();
a2.valueOfSupply = 20000.0;
a2.vatRate = 0.05;
a2.expenseRate = 0.2;
a2.print();
....
ガイドコース
https://www.boostcourse.org/opencourse
Boostレッスンを簡単に学ぶJava 1
https://www.boostcourse.org/cs126
Reference
この問題について([ガイドコース/簡単学習のJava 1]14マイアプリケーションの作成(2)-メソッド、クラス、インスタンス), 我々は、より多くの情報をここで見つけました https://velog.io/@jisubin12/부스트코스-14-2-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol