初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
オブジェクトのの作成( オブジェクトの作成とアクセス方法)
クラスを宣言しただけではいけません。
宣言したクラス内の変数やメソッドにアクセス(呼び出す)するためにはオブジェクトを生成
してやる必要があります。そのことをインスタンス化と呼びます。
オブジェクトの作成方法
クラス名 変数名; 変数名 new クラス名();
または
クラス名 変数名 = mew クラス名();ここで使われている変数のことを参照型変数と呼びます。 また、new クラス名() のクラス名();のことをコンストラクタといいます
インスタンスすることで初めてメンバーにアクセスできるようになります。
つまりクラス内のメンバー変数やメンバーメソッドを呼び出すことができるのです。
メンバーへのアクセス方法(呼び出し方)
変数名.メンバー変数;
変数名.メンバーメソッド();
※必ず変数名の後に .(ドット)を付けます。
では、プログラムで確認したいと思います。サンプルプログラム(Sample39.java)
class Sample39{ public static void main(String args[]){ //インスタンスします Sample39 obj = new Sample39(); //メンバーメソッドにアクセス obj.display(); } //メンバーメソッド void display(){ int x = 10; int y = 20; System.out.println("int xの値は" + x); System.out.println("int yの値は" + y); } }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
実行結果はこのようになります。
説明するとまず、オブジェクトを作成しています。
Sample39 obj = new Sample();
がそれになります。それで、やっとメンバーにアクセス可能状態になりました。
objが参照変数になります。
obj.display();
でメンバーメソッド display()にアクセスしています。今回はdisplay()メソッドは戻り値を持たないのでvoidをつけています。
ここで重要なことがあります。
オブジェクトを作成する場所はどこでもいいわけではありません。
プログラムには 必ずmainメソッドを持つclassを1つ作らなければいけません。
javaコマンドで最初に呼び出されるのがこのmainメソッドでmainメソッドが終了
した時点でプログラムも終了します。
つまりインスタンスする場所はこのmeinメソッドの中でなければいけないことになります。
このようにオブジェクトを作成しインスタンスして呼び出す変数やメソッドのことをインスタンス変数 インスタンスメソッド と呼びます。
そのほかにインスタンスしなくても呼び出せる変数、メソッドもあります。
それをstatic変数、staticメソッドといいます。
static 変数やstaticメソッドについては後ほど説明したいと思いますが、
mainメソッドを見てください。
public static void main(String args[]){ }でした。
mainメソッドもstaticメソッドであることは覚えておいてください。
ではもう一つプログラムを作成して確認したいと思います。
サンプルプログラム(Sample39_2.java)
class Sample39_2{ public static void main(String args[]){ int x = 10,y = 20; Sub39_2 obj = new Sub39_2();
obj.display(1000,2000); System.out.println("----------------------"); System.out.println(" int x = " + x); System.out.println(" int y = " + y); } } class Sub39_2{ void display(int x ,int y){ System.out.println(" int x = " + x); System.out.println(" int y = " + y); } }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
Sample39_2.javaには2つのクラスがあります。Sample39_2.class と Sub39_2.classです。
mainメソッドがあるクラスはSample39_2.classなのでSample39_2.classが中心になる本体のクラスです
このクラスのmainメソッド内でSub39_2.classのオブジェクトを作り、display()メソッドを呼び出しています。
今回はdisplay()メソッドには引数としてint x,int yを指定しています。
mainメソッド内は順番に処理が行なわれるので、まずobj.display()の中の処理が実行されます。
また、mainメソッド内に記述された変数はローカル変数と呼ばれるものです。
その後にmainメソッド内のローカル変数のint x と int y が呼ばれて実行されます。
したがって出力結果はこのようになるわけです
mainメソッドで呼び出されたメソッドはメソッド内で定義しておいた処理が呼ばれることを
覚えておいてください。