
JAVAの概念をコードから理解してみる
どうも、私にはJAVAの概念が分かんない。
だったら。こんな処理する場合はどうよ…から理解を試みてみる。
以下にJAVAで1から10までの数字を足した答えを出すコードを示します。
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("答え: " + sum);
}
}
このコードでは`for`ループを使って1から10までの数字を順番に`sum`変数に足し合わせています。最後に`System.out.println`を使って答えを出力しています。実行すると答えが表示されます。
`+`演算子は、文字列の結合を行うために使用されます。文字列型の変数やリテラルを結合することで、連結した文字列を作成することができます。
`System.out.println("答え: " + sum);`のコードでは、`"答え: "`という文字列と`sum`という変数の値を結合して、1行の文字列を作成し、それをコンソールに表示しています。`+`演算子の役割は、文字列と変数の結合を行い、結果として新しい文字列を生成することです。
つぎに、
以下は、JAVAでテキストファイルに記載された数字を読み込んで並べ替えるコードの例です。カプセル化の必要性についても説明します。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class NumberSorter {
private List<Integer> numbers;
public NumberSorter() {
numbers = new ArrayList<>();
}
public void readNumbersFromFile(String filePath) {
try {
File file = new File(filePath);
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
int number = Integer.parseInt(scanner.nextLine());
numbers.add(number);
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public void sortNumbers() {
Collections.sort(numbers);
}
public List<Integer> getSortedNumbers() {
return numbers;
}
public static void main(String[] args) {
NumberSorter sorter = new NumberSorter();
sorter.readNumbersFromFile("file.txt");
sorter.sortNumbers();
List<Integer> sortedNumbers = sorter.getSortedNumbers();
for (int number : sortedNumbers) {
System.out.println(number);
}
}
}
このコードでは、NumberSorterクラスを作成し、テキストファイルから数字を読み込んで並べ替えます。
カプセル化の必要性について考えると、numbersフィールドに対してのみアクセスするメソッドを定義することで、外部から直接numbersフィールドにアクセスするのを制限することができます。これにより、コードの安全性と保守性が向上します。
readNumbersFromFileメソッドは、指定されたファイルパスから数字を読み込み、numbersリストに追加します。FileNotFoundExceptionが発生した場合は、エラーメッセージを表示します。
sortNumbersメソッドは、numbersリストを並べ替えます。Collections.sortメソッドを使用して、Listを昇順に並べ替えます。
getSortedNumbersメソッドは、並べ替えられたnumbersリストを返します。
mainメソッドでは、NumberSorterクラスのインスタンスを作成し、readNumbersFromFileメソッドでテキストファイルを読み込みます。その後、sortNumbersメソッドで数字を並べ替え、getSortedNumbersメソッドで並べ替えられた数字のリストを取得し、出力します。
全体的に、カプセル化を使用することで、コードの構造を明確にし、外部から不正なアクセスや変更を制限することができます。また、コードの再利用性や保守性も向上します。