大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Javaマスターへの道 資格勉強編 Part10

株式会社クローバーフィールドの経営理念
著者:miyauchiatsushi
公開日:2023/07/20
最終更新日:2023/07/23
カテゴリー:技術情報
タグ:

今日はシルバーの勉強をやっていきます。
では問題、以下のプログラムを実行するとどうなるでしょうか。

public interface A {
    @Override
    default String toString() {
        return "A";
    }
}
public class B implements A {
    @Override
    public String toString() {
        return "B";
    }
}
public class Main {
    public static void main(String[] args) {
        A a = new B();
        System.out.println(a);
    }
}
この問題は引っ掛け問題なので、最後までプログラムを読んだ方には申し訳ない解答になってしまいます。
結論から言うとAインターフェースの時点で、コンパイルエラーとなってしまいます。
見たことがある方も多いのではないでしょうかtoString()は数値型の値を文字列に変換する際によく使う
Objectクラスにて定義されているメソッドなのですが
今回toString()のオーバーライドをしようとしていますが実はObjectクラスにて定義されているものは
オーバーライドができません。なのでインターフェースAの時点でコンパイルエラーになるが正解でした。
では次の問題です。このプログラムを実行するとどうなるでしょうか
public class Main {
    public static void main(String[] args) {
        for (int i = 0, j = 0; i < 5, j < 10; i++) {
            System.out.println(i++);
            j += 1;
        }
    }
}
では答え発表です。
for文では複数記述出来るところは初期化文と更新文だけなので
条件文を複数書いているこのプログラムはコンパイルエラーとなります。
for文は様々な書き方が出来るので訳が分からないという方は
参考書などのプログラムを実際にご自身の手で動かしながらプログラムを変えていくと覚えやすいです。
私もですが実際に手を動かすことの経験値はとても高いと思っています。
本を読むだけじゃなく、YouTubeで勉強などよりも効率がいいと思うので
分からないなら動かして試すというのは大事かもしれません。
    上に戻る