@ortyyy (Kawaki Ruida)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Java 配列 static, Main 【初心者】

解決したいこと

九九表を以下のプログラムコードをもとに作成したい

例)
Javaで九九表を出力するようプログラムをつくっています。
j のfor文以下の1文を直してプログラムが動くようにしたいのですが、そもそも上のMainの関係と下のstatic, prod()の部分があまり理解できておらずです。

参考コード

public class Main {
    public static void main(String[] args) {
        int[][] array = new int[9][9];
        int i, j;
        int temp;
        for(i = 0; i < array.length; i++){
            for(j = 0; j < array[i].length; j++){
                #tempを定義する?;
            }
                System.out.println("\n");
            }
        }
        public static void prod(int a, int b){
            int temp = a * b;
            System.out.print(temp + " ");
    }
}

自分で試したこと

System.out....など試したのですが、うまくいきませんでした。

可能であれば上下のpublicで始まるコードの関係についてもご教示いただけますと幸いです。

0 likes

1Answer

そもそも基礎的な知識が足りてないように見えるので、
publicprivateは「アクセス修飾子」
staticは「staticメソッド」「インスタンスメソッド」などで調べたり
javaにおけるmainの意味などを学習されるとよいと思います。

また、インスタンス化する場合としない場合で挙動や書き方が異なるので、
「クラス」「メソッド」「クラスメソッド」のようなキーワードで学習を進めて下さい。

関数prod内で定義された変数tempは、「#tempを定義する?;」と書かれた行からは参照できません。
変数の「スコープ」についても学習されるとよいです。


質問自体に答えると、prodmainから呼ぶ想定であれば、staticメソッドから非staticメソッドは呼べないため、prodstaticである必要があります。
(絶対に呼べないわけではありませんがここでは割愛します)

publicprivateはアクセス修飾子と呼ばれ、クラス内外のアクセス制限を決定します。
なので、mainから呼ばれるのであればpublicでもprivateでも構いませんが、別のクラスから呼ぶことを想定しないのであれば、privateにしておいた方が安全です。

prodが「引数a, bの乗算結果を出力する」関数であれば、
「#tempを定義する?;」の位置で呼び出せばよいです。
引数を与えて関数を呼び出すにはprod(i, j)のように記述します
戻り値がある場合はp = prod(i, j)とすればよいです。
voidは戻り値がないメソッドという意味です)

1Like

Comments

  1. @ortyyy

    Questioner

    ありがとうございます!勉強の手順についてもご教示頂け助かりました。キーワード順に理解をしたうえで先に進みすぎず学習を進めていこうと思います。ありがとうございます!

Your answer might help someone💌