static
形がもうできてるもの。
はじめっからあり。
newしなくていい
↑
↓
staticじゃないもの
newしないといけない。
設計図しかないjavaScriptのdateとか。
staticなものの中からはstaticなものしか呼び出せないという、おそろいになっている。
ので、Main183はこう修正する必要がある
--->Main183.java
package part1;
public class Main183 {
static int x = 100;
static int y = 10;
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
add();
}
public static void add() {
int ans = x+y;
System.out.println(ans);
}
}
ただしこれはあんまりよくないコード。むき出しで変数を外側に置いておくのはよろしくない。ブロックの中に置くのがよろしいらしい。
戻り値のはなし
Main188.java
package part1;
public class Main188 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
int ans = add(100,10);//メソッドを呼び出す
System.out.println(ans);
}
public static int add(int x, int y) {
int ans = x+y;
return ans;
}
}
ここで、メソッドadd()は戻り値を返しているが、それゆえに、メソッドの宣言のときに
public static int add(int x, int y) {
}
となっている(public static voidではない)ことに注意。
→戻り値のあるものは、その戻り値の「型」を最初に入れておかないといけないという決まりがある。
voidとは、「リターン値のないメソッド」という意味。いままでは戻り値がなかったのでこれを使ってきた訳。
やりっぱなしでリターン値がないときはvoidになるし、
int型をreturnするなら書き出しがpublic static intになる。
--->Main188.java
package part1;
public class Main188 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
int ans = add(100,10);//メソッドを呼び出す
System.out.println(add(add(10,20),add(30,40)));
}
public static int add(int x, int y) {
int ans = x+y;
return ans;
}
}