#問題点
mainメソッドまでは上手くいってました。
だけど、「メソッド」や「オブジェクト」が登場してから急に難しくなりました。
#結論
オブジェクト化する事で、好きなファイルに好きなタイミングで設定した変数とメソッドを呼ぶことができる。
メソッド化する事で、保存や加工したデータを戻り値で飛ばせるようにして、引数で受けとる事ができるようになる。
これらによりどんなファイルでも自由自在にデータを渡せるようになる。
どういう事か説明します。
#問題発生の範囲
#####1.「Main1」ファイルから「Human」ファイルを呼びます。
public class Main1 {
public static void main(String[] args) {
Human human = new Human();
human.name = "あいだ";
human.hello();
}
}
####2.「Human」ファイルの中身です。
public class Human {
String name;
public void hello(){
System.out.println(name +"さん、こんにちは");
}
}
####3.ターミナルの結果です。
あいださん、こんにちは
#疑問点
ファイルを2つも用意しなくていいのではないか?
→mainだけで作ることはできないのか?
####1.「Main2」ファイルだけで、同じ結果になるように作る。
public class Main2 {
public static void main(String[] args) {
String name;
name = "あいだ";
System.out.println(name +"さん、こんにちは");
}
}
####2.できました。
あいださん、こんにちは
#結論1
以下の場合は、オブジェクトもメソッドも必要がない事がわかりました。
- 保存するデータ(name)が1つ
- データの処理(nameを使った出力)が1つ
#新たな疑問
先ほどは「あいださん」1人だけでしたが、
「うえださん」も追加したらどうなるのか?
####1.「Main2」ファイルに「うえだ」さんを追加します。
public class Main2 {
public static void main(String[] args) {
String name;
name = "あいだ";
//■①「うえだ」さんを追加する。
name = "うえだ";
//■②「あいだ」さん用の「こんにちは」はそのまま
System.out.println(name +"さん、こんにちは");
//■③「うえだ」さん用の「こんにちは」を追加
System.out.println(name +"さん、こんにちは");
}
}
####2.できませんでした。
うえださん、こんにちは
うえださん、こんにちは
#結論2
mainメソッドだけでやろうとすると、
- 同じ変数(変数が上書きされる)が使えない。
- 変数が使えないのでデータの処理もうまくいかない。(「うえだ」さんしか出てこない。)
#解決策
####変数を増やす。
public class Main2 {
public static void main(String[] args) {
String name1;
String name2;
name1 = "あいだ";
name2 = "うえだ";
System.out.println(name1 +"さん、こんにちは");
System.out.println(name2 +"さん、こんにちは");
}
}
#結論3
保存したいデータが2つ以上になってくると、
- 変数を2つ用意しなければならない。
- 変数名を考えないといけない。
- 後から見た時に「どの変数」に「どのデータ」が入っているかわからなくなりそう。
#まとめ
mainメソッドだけで処理するより、オブジェクトで分けた方がいいメリットして
以下の事がわかりました。
- 同じ変数名でデータを保存できる。
- 好きなタイミングでデータを引き出せる。
#反省点
次回の投稿で「まとめ」の
「好きなタイミングでデータを引き出せる」の部分と
「メソッド」を使う利点を説明できるようになる。