こんにちは。Javaの初心者です。
Javaの初期化メソッド(initメソッド)についてなのですが、処理を記述しても実行してくれません。
恐らく使い方が間違ってるかと思われるのですが、ネットで調べてもあまり検索結果がでてこなかったので、質問させてもらいました。
以下サンプルコード
import java.lang.*;
public class Test
{
static int a;
public void init()
{
a = 10;
}
public static void main(String[] args)
{
System.out.println(a);
}
}
実行してみても、「0」と表示されるだけで、「10」と表示してくれませんでした。
どこかコードが間違えてるのでしょうか?
それとも初期化メソッドはアプレット用であってアプレットで使わないと意味がないというものなのでしょうか?
因みに関係ないかと思われますが、グローバル変数は自動的に初期化される(0が代入される)ということは知っています。
ご教授の方、よろしくお願い致します。
No.4ベストアンサー
- 回答日時:
>メンバ変数はこの中でどれに当てはまるのでしょうか?
フィールドです。
>これはクラスの領域を超えて別のクラスからでもアクセスできるということでしょうか?
そうです。
ただ、「別のクラスからでもアクセスできる」ことを表すのはpublicです。
それに、別のクラスという表現だと正確ではないですね。
privateではない変数であれば、別のクラスからでもアクセスできる可能性はありますので。
publicにすることで、「あらゆるクラスから」アクセスできるようになります。
「java アクセスレベル」や「java アクセス修飾子」などで検索してみてください。
staticは変数のスコープとはまた別の意味です。
staticな変数にすることで、インスタンス毎ではなくクラス毎に保持することになります。
1冊の書籍なり1つの入門サイトなりをひととおり読んで
サンプルコードを動かすことから始めてみてはいかがでしょうか。
一応、自分なりに独学で学んでるんですが・・・・まだまだですね・・(^^;A
今度書店でも行ってJava入門関係の本を読んでもう一度復習してみます。
ご回答、ありがとうございました。
No.3
- 回答日時:
>それとも初期化メソッドはアプレット用であってアプレットで使わないと意味がないというものなのでしょうか?
アプレット用というか、アプレット実行時にはinitメソッドが実行されるという仕様ですが、
通常のJavaアプリケーションはそうではないという事です。
なので先の回答者さんがおっしゃっているように、自分でinitメソッドを実行しなければいけません。
ちなみに、記載のコードのaはグローバル変数とは言わないかなと思います。
http://www.kab-studio.biz/Programing/JavaA2Z/Wor …
こちらも読まれてみてはいかかでしょうか。
この回答への補足
ご回答ありがとうございます。
少し気になったのですが、アドレス先で、
>>Javaの変数は、メソッド内の「ローカル変数」か、クラスの内の「フィールド」しか存在しないためである。
メンバ変数はこの中でどれに当てはまるのでしょうか?
フィールド変数と同じですか?
あと、
>>publicフィールドでかつstaticフィールドとすることで、あらゆる箇所からアクセスできる変数となる。
これはクラスの領域を超えて別のクラスからでもアクセスできるということでしょうか?
アドバイスの方、どうか宜しくお願い致します。
No.2
- 回答日時:
initメソッドを実装したけど、実行してないですね。
オブジェクトの生成時に自動的に実行したいなら、コンストラクタで定義してください。
http://msugai.fc2web.com/java/constructor.html
今の状態は、initというメソッドを定義しただけ。
この回答への補足
ご回答ありがとうございます。
一応、このようなコードを書いたのですが。
import java.lang.*;
public class Test
{
static int a;
public void init()
{
a = 10;
}
public static void main(String[] args)
{
Test test = new init();
System.out.println(a);
}
}
initメソッドの実行はこのような感じでよろしいでしょうか?
実行してみたところ、「シンボルがみつからない」と出たのですが・・・。
どうすればよろしいでしょうか?
アドバイスの方、どうかよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java java final 1 2022/06/10 22:49
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java eclipse実行ができない 2 2022/07/27 04:47
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコード件数の表示
-
Java初級 引数に適用できません
-
String.containsの反対機能はあ...
-
StringBufferからStringへキャ...
-
Google Apps Script で getRang...
-
javaに"search"という関数 or ...
-
動画の座標値をマウスクリック...
-
なぜprotected overrideなのか
-
Javaの関数名が長い?
-
メソッド宣言の戻り値の型にク...
-
JDBC Connectionを開放し続ける...
-
privateのメソッドをリフレクシ...
-
Java の配列の中身は volatile ...
-
クラスを作るとメソッドの数が...
-
readLine()ではじめから読み直...
-
abstract と static を一緒に付...
-
親の親のメソッドを呼ぶには?
-
overrides
-
C# 点の描き方をおしえてくだ...
-
C言語での文字列より値を抜き出す
マンスリーランキングこのカテゴリの人気マンスリー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の読み取り専用の解除
-
親の親のメソッドを呼ぶには?
おすすめ情報