#はじめに
この記事は備忘録である。
参考書レベルの内容だが、本記事に掲載するコードについては、
間違えたものが中心となる。これは実際にコーディング中に間違えた部分を掲載し、自分で反省するために投稿するという目的によるもの。
また、後日にJavaSilver試験問題の勉強を兼ねて復習するため、深い部分の話はここでは触れない。
今回は基礎を理解するために、間違えを記述しない。
##環境
言語:Java11、JDK13.0.2
動作環境:Windows10
#クラスの宣言
クラスを宣言(declaration)するところから見てみる。これはやさしいJava 第7版からの引用となる。
class クラス名
{
型名 フィールド名;
...
戻り値の型 メソッド名(引数リスト)
{
文;
...
return 式;
}
...
}
この宣言に基づいて実際のクラスと比較してみる。
class Cat
{
double weight;
String color;
//ここまでが型名とフィールドの宣言。
//weightとcolorのフィールドが出来た。
void setWeightColor(double w,String c)
{
weight = w;
color = c;
System.out.println("この猫の体重を" + weight + "にしました。");
System.out.println("この猫の色を" + color + "にしました。");
}
double getWeight()
{
System.out.println("猫の体重を更新します。");
return weight;
}
void introduce()
{
System.out.println("この猫の体重は" + weight + "kgです。");
System.out.println("この猫の色は" + color + "色です。");
}
//ここまでがメソッドの記述。戻り値の型に注意。
//CatクラスはsetWeightColor(double w,String c),getWeight()
//それにintroduce()のメソッドを持つ。
}
フィールドとメソッドがどれか、というのはこれでわかると思う。これらフィールドとメソッドのことを、クラスの**メンバ(member)**と呼ぶ。
余談だが、クラス名・フィールド名・メソッド名はいずれも**識別子(identifier)**である。よって、以前扱った識別子のルール(変数のルールと思えばいい)に従っていれば、どんな名前でも好きなように付けることが出来る。識別子的に意味が通っていなくてもプログラム上は問題ないが、可読性を考慮して書くと後から読み返す・誰かに読んでもらうときに分かりやすくて良い。
以下は(一応)OKな例。可読性は皆無。こんな状態でも、IDE(統合開発環境)やテキストエディタの仕様次第では、(比較的)障害もなくソースを書くことが出来るので、本当に文明の利器といったところだ。
class UnitedKingdomOfGreatBritainAndNorthernIreland
{
int pneumonoultramicroscopicsilicovolcanoconiosis;
String Tetaumatawhakatangihangakoauaotamateaurehaeaturipukapihimaungahoronukupokaiwhenuaakitanarahu;
void Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch()
{
System.out.println("世界一長い英単語は、
病名では" + pneumonoultramicroscopicsilicovolcanoconiosis
+ "世界一長い地名は、"
+ Tetaumatawhakatangihangakoauaotamateaurehaeaturipukapihimaungahoronukupokaiwhenuaakitanarahu
+ "です。")
}
}
##フィールド
Cat
クラスで宣言されたweight
とcolor
は、Cat
を使ってオブジェクトやインスタンスを新たに作ってから、そのオブジェクトに値を格納することが出来る。
例:
Cat firstCat = new Cat();
firstCat.weight = 2.3;
firstCat.color = "茶トラ";
これはnew
できちんとオブジェクトを作ってさえ置けば、いくつでも用意することが出来る。
##メソッド
上記の例に倣って、すべてのオブジェクトにいちいち値を用意していては時間がかかりすぎるので、Cat
クラスに書いたメソッドを使う。
Cat firstcat =new Cat();
firstCat.setWeightColor(2.3,"茶トラ")
double myCatWeight = firstCat.getWeight();
System.out.println("我が家初めての猫の体重は" + myCatWeight + "でした。");
#終わりに
簡単なクラスだったが、書くにあたり調べるのを含めて20分程度かかってしまった。沢山書かなければやはり身に付かないし、こういったクラスをバンバン量産するのが醍醐味だと感じているので、クラスを作るだけの回を設けて挑戦してみるのもありかもしれない。
#参考
出来るだけ自分で変数や式を書いてコンパイルしているので、完全に引用する場合はその旨記述する。