インスタンス
宣言例は以下の通り
ex1.Java
public データ型 メソッド名(){
//記述
}
- メソッド名は任意
呼び出す際は以下のようにして呼び出す
ex2.Java
//クラス名がtest、インスタンス名がprintDataの場合
test TEST1 = new test();
test.printData();
//補足:test TEST1 = new test(変数);で渡すことも可
}
-
- インスタンスメソッドはインスタンス(を代入した変数)に対して呼び出す
インスタンスフィールド
参照しているクラスとは別クラスに情報を格納しておくインスタンス内における変数の役割
testクラスに文字列型のインスタンスフィールドを宣言するときはpublicと並べ宣言する
ex3.Java
class test{
public String name;
}
- ";"を忘れないこと
- publicのpは小文字、StringSは大文字のように文字の大小に細心の注意を払うこと
thisの用途
thisはMainに限らず別インスタンス内でも宣言可能だが、
thisの扱いにおいてはMainで変数に格納されたインスタンス内の変数を参照しているのであって、別クラスの変数が変わるわけではない
つまり記述されたインスタンスは変数に格納されて呼び出されるインスタンスのフォーマットサンプルのような役割?
- this()とすると、コンストラクタから他のコンストラクタを呼び出すことができる
- こうしたとき、thisはコンストラクタの先頭でしか呼び出せない
クラスフィールド
-
インスタンスフィールドはインスタンス内の変数だったのに対して、クラスフィールドはクラス内の変数 = 個々のインスタンスが持つものではなく、クラスが持つ
-
- インスタンスフィールドとの明確な差は、static宣言の是非
ex4.Java
class test{
public static データ型 メソッド名(){
//記述
}
}
オーバーロード
クラス内でコンストラクタの引数の数を可変的にしたい場合、同名のメソッドを定義することができ、Javaの場合自動的に適切なコンストラクタを自動で呼び出す
ex5.Java
class test{
DataPrint(String firstName, String lastName){
//記述
}
DataPrint(String firstName,String midName, String lastName){
//記述
}
}
}
このように多重で定義してもよい
((間違った箇所があればご指摘いただけますと幸いです))