Open Source Web Development Tutorials - Dev Shed
Java入門:クラス
(2009/01/21公開)
Java入門:Javaプログラミングを始めよう
Java入門:オブジェクト指向プログラミング
Java入門:プリミティブデータ型と言語ルールの基本
Java入門:演算子
Java入門:条件演算子、式、そのほかのJava演算子
Java入門:命令文
Javaのクラス
Javaについての前回の記事を書いてからしばらく時間がたってしまった。前回の記事は複雑な美で飾られていた(「複雑な美」の一例としては、ヒラリー・スワンクを挙げることができる。彼女の美しさは・・・そう複雑なものだ)。今回の連載では、クラスについて扱うことになっている。
クラスやオブジェクトに関しては、拙筆のJavaとオブジェクト指向プログラミングに関する、「Java入門:オブジェクト指向プログラミング」でふれている。
オブジェクトとクラスとは?
オブジェクトは状態と振る舞いから成っており、現実の世界でのオブジェクトのためのモデルとして通常使用される。オブジェクトの例としてフォードのトラックが挙げられる。その一方で、トラックのカテゴリをあらわすのがクラスだ。フォードのトラック、シボレーのトラック、ドッジのトラックなど、それぞれは特定の分野でほかとは異なるが、基本的にはすべてトラックのクラスの一部だ。そのため、すべてはトラックの基本的な同じ要素を共有している(例:4つのタイヤ、荷台など)。
まずはクラス宣言の例を見てみよう。
public class BruceLee {
//We will give Bruce Lee three fields
public int punch;
public int kick;
public int roundhouse;
//We will provide one constructor for Bruce
public BruceLee(int usePunch, int useKick, int useRoundhouse) {
punch=usePunch;
kick=useKick;
roundhouse=useRoundhouse;
}
//We will give Bruce Lee three methods
public void setPunch (int someNewValue) {
punch = someNewValue;
}
public void setKick (int someNewValue) {
kick = someNewValue;
}
public void setRoundhouse (int someNewValue) {
roundhouse = someNewValue;
}
}
BruceLeeクラスにPupilあるいはサブクラスがあるとした場合、サブクラスをこのように宣言できる:
public class Pupil extends BruceLee {
// We give Pupil one field
public int eyePoke;
//And one Constructor
public Pupil(int usePunch, int useKick, int useRoundhouse) {
flex(usePunch, useKick, useRoundhouse);
eyepoke=usePunch;
}
//And one method
public void finger(int someNewValue) {
eyepoke=somenewValue;
}
}
この時点でまだ意味がよく分からなくても心配しなくてもいい。筆者もよく意味が分かっていないからだ。でもこのチュートリアルの最後までいけば、必ずはっきり理解できるようになることをお約束する。
上の例では、サブクラスであるPupilがBruceLeeのすべてのフィールドを継承している。そして独自のフィールド(eyepoke)とそれを使うメソッド(finger)を加えている。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.








