java を勉強中の超初心者です、宜しくお願いします。
main と同じクラスに disp というメソッドを作成してやり、” void disp(int a , int b )”と書いてやりましたが、mainからアクセス出来ません。
そこで、” static void disp(int a , int b )” という風に” static ” を先頭につけてやりましたら、うまく動きました。
これは、mainメソッドから他のメソッドにアクセスする場合には、必ず” static ” をつけてやる必要があるということでしょうか。
=======================================================
class クラス練習
{
public static void main(String[] args)
{
disp(5,10);
}
/*static*/ void disp(int a , int b )
{
System.out.println("a+b = " + (a+b));
}
}
No.2ベストアンサー
- 回答日時:
自動で、コードを生成してくれるnetbeansなどは、
コンストラクタで、解決している場合もあるようです。
このように書いても、必ず、staticが、必要に、
ならない場合があるみたいです。
public class practice {
public practice() {
disp(5,10);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new practice();
// TODO code application logic here
}
void disp(int a, int b) {
System.out.println("a+b ="+(a+b));
}
}
No.3
- 回答日時:
staticメソッドはインスタンス化せずに呼び出せますが、staticでないメソッドはインスタンス化しないと使えません。
詳しいことは後々クラスの扱いを学ぶ辺りでわかりますので、今はそういうものだと思っておいて下さい。
とりあえずの対策としては、全体的な構造にもよるのですが、
クラス練習 tc = new クラス練習();
tc.disp(2,1);
等としてみて下さい。
以下はもう少し詳しい説明ですが、分からないなら無視して下さい。後々理解できるようになります。
例として、"Car"クラスと、そのインスタンスである"prius"と"fit"があるとします。
どれだけの燃料が入っているかを調べるgetFuelLevel()メソッド実装してみましょう。
仮にgetFuelLevel()をstaticとした場合、このメソッドが参照できる変数はstaticなクラス変数のみです。Car.getFuelLevel()等とした場合に、staticではない変数は「まだ宣言されていない」可能性があるためです。
(厳密にはもっと難しいんですが)
staticメソッドはすべてのインスタンスで共通ですので、この場合は"prius"も"fit"も同じ値が帰ってきます。更に言えば、地球上すべての車の燃料の残量が同じだということです。
こんなことはありえません。それぞれの車で違うはずです。燃料だけでなく車種やナンバーもそれぞれで違うはずです。
つまり「それぞれの車」で違うのですから、「それぞれのgetFuelLevel()」が必要になるわけです。staticは「共通のメッソドや変数」を作ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java java final 1 2022/06/10 22:49
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java初級 引数に適用できません
-
レコード件数の表示
-
VBAで新規ファイル名
-
public static void main (Stri...
-
不要なstaticメソッドの見分け...
-
StringBufferからStringへキャ...
-
String.containsの反対機能はあ...
-
Google Apps Script で getRang...
-
リストボックスの並べ替え (VB...
-
戻り値の異なるメソッドの多重...
-
なぜprotected overrideなのか
-
オーバーライドの必要性
-
abstract と static を一緒に付...
-
Jakarta POI での、excelのシ...
-
YYYYMMDD書式の日付に対する適...
-
C# 点の描き方をおしえてくだ...
-
java ジェネリックスに関して
-
【C#】WebBrowser上で表示され...
-
Android 別javaファイルのメソ...
-
Java初心者です、エラーの意味...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
public static void main (Stri...
-
レコード件数の表示
-
abstract と static を一緒に付...
-
なぜprotected overrideなのか
-
C# 点の描き方をおしえてくだ...
-
コマンドライン引数のチェック
-
String.containsの反対機能はあ...
-
Google Apps Script で getRang...
-
StringBufferからStringへキャ...
-
Java初心者です、エラーの意味...
-
javaに"search"という関数 or ...
-
C# でメソッドに送られてきたOb...
-
YYYYMMDD書式の日付に対する適...
-
メソッド宣言の戻り値の型にク...
-
return new使用時
-
readLine()ではじめから読み直...
-
シェルスクリプトからのJavaメ...
-
Fileの読み取り専用の解除
-
親の親のメソッドを呼ぶには?
おすすめ情報