現在javaの学習中です。
復習として簡単なコードを打ち込んでそれを学んで自分が覚えている範囲から書き換えているのですがnumの値を表すコードを書いてみました。
P1:
class Sample1 {
public static void main(String args[]) {
int num = 100;
System.out.println("This num is " + num);
}
}
といった構文をまず P2:
class XXX {
void display() {
int num;
num = 100;
System.out.println("This num is " + num);
}
}
class sample1 {
public static void main(String args[]) {
XXX p1 = new XXX();
p1.display();
}
}
と書いてみてその次に
P3:
class XXX {
void display() {
int num;
num = 100;
System.out.println("This num is " + num);
}
}
class sample1 {
public static void main(String args[]) {
XXX p1 = new XXX();
p1.display();
sample3(20);
}
public static void sample3(int num1) {
System.out.println("This num1 is " + num1);
}
}
と書き加えてみました。
P3についてはネットに記述していたやつを真似て作成してみたのですが、
ここでvoid sample3(int num1)についてよくわからなく
void というのは引数が空のときにつかうものではないのでしょうか。
引数 int num1というのが書かれているのにどうしてvoidをつけないといけないのでしょうか。
また
class XXX {
void display(int num) {
num = 100;
System.out.println("This num is " + num);
}
}
class sample1 {
public static void main(String args[]) {
XXX p1 = new XXX();
p1.display();
}
}
といった記述にしてみたんですが、自分はp1.displayは空のvoid dsplay(int num)に戻って
num = 100をいれて This num is 100とだされると考えていたのですがエラーがでてしまいました。
class XXX {
void display(int num) {
System.out.println("This num is " + num);
}
}
class sample1 {
public static void main(String args[]) {
XXX p1 = new XXX();
p1.display(100);
}
}
といった記述にすれば問題なくだされるのですが戻り値といったものや引数の約束事やその仕様、voidなどがいまいちわかりません。よろしくお願いたします。
class time { public static void main(String args[]){ double r = 3000; double s = 75; double t ; t = r / s ; NY_LAtime(t); } public static double NY_LAtime(double t){ System.out.println("NYからLAまでにかかる時間は " + t); return t; }}
とclass time { public static void main(String args[]){ double r = 3000; double s = 75; double t ; t = r / s ; NY_LAtime(t); } public static void NY_LAtime(double t){ System.out.println("NYからLAまでにかかる時間は " + t); }}
– user10197 Jun 20 '15 at 12:11int a2 =
mul2(3);
のような場合mul2
は、6を返してそれがa2に代入されます。値を返すメソッドの場合その返値を受け取ることが想定されます。受け取らない場合は返値は単に捨てられます。逆に値を返さないメソッドでint a2 = noreturn(3);
のようなことはできません。問題があるかどうかはプログラムとしての整合性の問題になります。 – BLUEPIXY Jun 20 '15 at 12:41System.out.println(NY_LAtime(3000.0/75.0))
のような場合をそれぞれ試してみて下さい。 – BLUEPIXY Jun 20 '15 at 12:43class time { public static void main(String args[]){ double d; d = 3000.0/75.0; NY_LAtime(d); } public static double NY_LAtime(double d){ // P1:System.out.println(NY_LAtime(3000.0/75.0)); System.out.println(NY_LAtime(d)); return NY_LAtime(d); }}
の場合コードで間違いはないがエラーがでて コメントの欄のやつもエラーがでてしまいます。 またreturn NY_LAtime(3000/75.0)にしてもエラーがでます。 作成中にvoidでやろうとしたところそれはできないといわれました。 A{void} B{sample3}(C{int num1})というのはその役割があるというより こうやったら客観的に見てなにが起こってるかわかりやすいからこう書きましょう。というようなものですか? – user10197 Jun 20 '15 at 13:40System.out.println(NY_LAtime(3000.0/75.0))
でNY_LAtime
が値を返さない場合はエラーになり、値を返す場合は返した値が表示されます。「どう書いても違いは無い」というのは返値を使うようなコードでなかったからというわけです。 – BLUEPIXY Jun 20 '15 at 13:46double velocity (double distance_km, double hour)
のように(一例)表現するということになります。 – BLUEPIXY Jun 20 '15 at 13:53