記載いただいている情報だけでは判断できない部分がありますが、想定で補完しながら回答します。
this.account = account
がフィールドではなくローカル変数なのでは?
とのことですが、半分正解で、半分外れです。
this.account
はフィールド変数を指し、
account
はローカル変数を指しています。
以下は私の想定のコードになるので、違うところがあれば指摘してください。
おそらくMain.java
、Login.java
はそれぞれ以下のような定義になっていると想像しています。
Main.java
public class Main {
public static void main(String[] args) throws Exception {
// newをしてLogin.javaを使えるようにしていると予想
Login human = new Login("test account","test password");
System.out.println("アカウント名は:"+human.getAccount()+"です");
}
}
Login.java
public class Login {
// フィールド変数
String account;
String password;
// コンストラクタ
// おそらくこのような実装
public Login(String account, String password) {
this.account = account;
this.password = password;
}
// ゲッター
// おそらくこのような実装
public String getAccount() {
return this.account;
}
}
質問者さんが書いていただいている
login.java
public Login(String account, String password) {
this.account = account; // ← メンバ変数扱い?
this.password = password;
}
の内容はメソッドではなく、コンストラクタになります。
これは、newをしたときに呼び出されるもので、newしたときに渡した値をフィールド変数に指定しています。
this.account = account
のうち
左側のthis.account
のthis
は自分自身のクラスということを表していて、Login.javaのフィールド変数を指します。
右側のaccount
はコンストラクタのLoginに渡される値を指します。
つまり、newしたときに渡した値を、フィールド変数の中身として設定をしていることになります。
そして、ゲッターでは(※あくまでも私の想定になるので、質問者さんの実装は違うかもしれません)
public String getAccount() {
return this.account;
}
と、ここでもthis.account
を指定しています。
newしたときに渡した値がthis.account
に設定されているので、ゲッターを使うことでアカウントの中身が取得できる
ということになります。
こちらで回答になっているでしょうか
わかりにくいところ等あればご指摘ください