見出し画像

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メソッドで並べ替えられた数字のリストを取得し、出力します。

全体的に、カプセル化を使用することで、コードの構造を明確にし、外部から不正なアクセスや変更を制限することができます。また、コードの再利用性や保守性も向上します。

この記事が気に入ったらサポートをしてみませんか?