こんにちは。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初級 引数に適用できません
-
abstract と static を一緒に付...
-
readLine()ではじめから読み直...
-
C言語での文字列より値を抜き出す
-
Google Apps Script で getRang...
-
public static void main (Stri...
-
Java 「参照型の型変換」について
-
クラスを継承した際のコード自...
-
C# 点の描き方をおしえてくだ...
-
Fileの読み取り専用の解除
-
ArrayList の継承について(初...
-
[クラス名].[メソッド名].[メソ...
-
C# でメソッドに送られてきたOb...
-
StringBufferからStringへキャ...
-
String.containsの反対機能はあ...
-
変数とフィールドの使い分け
-
System.out.print
-
Path型またはString型をURL型に...
-
別クラスのmainメソッドの実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
String.containsの反対機能はあ...
-
なぜprotected overrideなのか
-
Strutsでチェックボックスの値...
-
Google Apps Script で getRang...
-
abstract と static を一緒に付...
-
C# 点の描き方をおしえてくだ...
-
レコード件数の表示
-
public static void main (Stri...
-
StringBufferからStringへキャ...
-
YYYYMMDD書式の日付に対する適...
-
C# でメソッドに送られてきたOb...
-
シェルスクリプトからのJavaメ...
-
C# の ByVal と ByRef について
-
Fileの読み取り専用の解除
-
CSVから読み込んだデータの保持...
-
メソッドの引数に指定されてい...
-
javaに"search"という関数 or ...
-
Javaのメモリの管理
-
Java初心者です、エラーの意味...
おすすめ情報