Javaプログラミング/Javaの基本

クラスとインスタンスをマスターしよう(3ページ目)

Javaプログラミングの最大のポイントは「クラス」を理解することです。クラスを具体的に利用する基本について理解しましょう。

執筆者:掌田 津耶乃

インスタンスの作成とメソッド呼び出し


では、作成したクラスからインスタンスを作成し、メソッドを呼び出すにはどうすればよいのでしょうか。これは、以下のような形で行います。

●インスタンスの作成
クラス 変数 = new クラス( 引数 );
例:MyObject object = new MyObject();


インスタンスは、newというものを使って作成します。作成されたインスタンスは、そのまま変数などに設定しておけます。

●インスタンス内のメソッドの利用
インスタンス.メソッド( 引数 );
変数 = インスタンス.メソッド( 引数 );
例:object.setName("たろう");
  String s = object.getName();


メソッドが何らかの値を返すものであった場合には、getNameの例のように返値を変数などに代入させるような形で実行するのよいでしょう。が、void(何も値を返さない)のメソッドでは返値を変数に入れておく必要はありません。

ちなみに、ここではメソッドの利用だけしか行っていませんが、フィールドも同様にしてクラスやインスタンスから利用することができます。例えば先のサンプルでobject内のnameフィールドを変数などに取り出したければ、

String s = object.name;


このようにすればよいのです。メソッドと同様、クラスやインスタンス名の後にドットをつけ、その後にフィールド名を書けば、そのクラスやインスタンスの中にあるフィールドを利用することができるようになります。


ウインドウを使ったプログラムを作ろう!


クラスからインスタンスを作る方法、そしてメソッドとフィールドの利用方法、それらがわからないとJavaのプログラムは作れません。なぜなら、Javaに最初から用意されているさまざまな機能そのものが、すべてクラスとして用意されているからです。つまり、クラスからインスタンスを作り、その中のメソッドやフィールドを呼び出すという基本的な仕組みがわからないと、用意されている機能すら利用できないのです。

逆に言えば、これらの基本がわかれば、すぐにでもJavaの機能を利用できるようになります。例えば、Javaには「AWT(Abstract Window Toolkit)という、ウインドウやメニューといったGUIを作るための機能がクラスとして用意されています。それらを利用したプログラムを考えてみましょう。

import java.awt.*;

public class Sample {

  public static void main(String[] args){
    Frame f = new Frame();
    Label l = new Label("Hello");
    Button b = new Button("OK");
    f.add(l,BorderLayout.CENTER);
    f.add(b,BorderLayout.SOUTH);
    f.setSize(200,100);
    f.setVisible(true);
  }
}
プログラムを実行すると、テキストとボタンを持ったウインドウが画面に現れます。

これを実行すると、画面に「Hello」という文字と「OK」ボタンをもったウインドウが現れます。もっとも、これはただ表示されているだけで、何の機能もありません。プログラムを終了する機能さえありませんから、コマンドプロンプトからCtrlキー+「C」キーを押して強制終了して止めてください。何もできないプログラムですが、ともかくこれだけ短いソースコードで、ちゃんとウインドウを表示したプログラムが作れたことはわかるでしょう?

では、実際にどのようにしてウインドウやボタンのあるプログラムを作っているのか、ざっと見てみましょう。まずは、ウインドウ、テキスト表示、ボタンといった部品のクラスからインスタンスを作ります。

Frame f = new Frame();
Label l = new Label("Hello");
Button b = new Button("OK");


Frameはウインドウ、Labelはテキストを表示する部品、Buttonはプッシュボタンのクラスです。それぞれnewを使ってインスタンスを作成していますね。インスタンスができたら、これらを組み立てていきます。

f.add(l,BorderLayout.CENTER);
f.add(b,BorderLayout.SOUTH);


これは、Frameクラスのインスタンスにある「add」というメソッドを呼び出している部分です。このaddは、ボタンなどの部品をウインドウの中に組み込む働きをします。これで、ウインドウの中にテキストやボタンが組み込まれたわけです。後は、ウインドウの調整をして画面に表示させるだけです。

f.setSize(200,100);
f.setVisible(true);


setSizeメソッドでウインドウの大きさを調整し、setVisibleメソッドで画面に表示をさせています。これですべておしまいです。たったこれだけで、ウインドウを使ったプログラムができてしまったのですね。

皆さんの中には、「ウインドウをドラッグして動かしたり、ボタンをクリックしたら表示が変わったりする処理はいらないのか?」と思った人もいるかもしれません。そういう処理は、いらないのです。なぜなら、既にFrameやButtonといったクラスの中に、そうした必要な機能はすべて組み込まれていて、プログラマが何もしなくてもウインドウはウインドウとして、ボタンはボタンとして機能するようになっているからです。

まだ皆さんにはFrameやButtonといったクラスがどういう働きをするのか、あるいはimportなんて文が新たに付け加えられているけどこれは何なのか、などわからない点ばかりかもしれません。が、少なくとも「クラスからインスタンスを作り、メソッドを呼び出す」という基本だけで、ウインドウを持ったプログラムがちゃんと作れてしまうんだ、ということは理解できたはずです。これが一番大切なことなのです。この基本さえ理解できれば、後は単に「どんなクラスやメソッドが用意されているか」という知識を増やすだけの問題なのですから。


バックナンバー

はじめてのJava(1)「Javaを手に入れよう」
はじめてのJava(2)「環境変数をマスターする」
はじめてのJava(3)「Javaのプログラムを動かそう」
はじめてのJava(4)「mainメソッドを使おう」
はじめてのJava(5)「制御文を使おう」
【編集部おすすめの購入サイト】
楽天市場で Java 関連の書籍を見るAmazon で Java 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます