- PR -

voidについて悩んでます

1
投稿者投稿内容
ken
会議室デビュー日: 2005/05/04
投稿数: 5
投稿日時: 2005-05-04 01:56
kenです。
初めて投稿します。宜しくお願いいたします。
プログラミングの勉強(Java)を始めて半年ほどですが、
voidについて悩んでいます。
参考書等で調べてみると、
"voidは戻り値を持たないメソッドに指定する"
というようなことが書いてあります。
"戻り値をもつ"
"戻り値を持たない"
この違いが、よく分かりません。
ご説明いただけませんでしょうか?
お願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-05-04 02:48
戻り値を持つメソッド
コード:
public int test(){
    return 100;
}



戻り値を持たないメソッド
コード:
public void test(){
    return;
}



このような違いです。
戻り値とはメソッドの実行結果と思ってもらって結構です。
わかりやすく例えると、

・メール
 送信をしたら終了(戻りはなし)
コード:
public void send(String address,String to,String title,String msg){
    メッセージ送信処理・・・
}



・ブラウザ
 URLを送信したら、HTMLが戻る
コード:
public HTML send(String address){
    HTMLを生成する処理・・・

    return HTML;
}



こんな感じです。
a-san
ベテラン
会議室デビュー日: 2004/06/01
投稿数: 53
投稿日時: 2005-05-04 03:27
例えば、
System.out.println("Hello");
は、「画面に"Hello"と出力してください」という意味なので、結果は特に必要ありません。
でも、
String key = "abc";
String ABC = key.toUpperCase();
は「文字列"abc"を大文字にして、その結果をください」という意味なので結果が必要です。


戻り値のあるメソッドは、その戻り値の型を最初に書きますが、
int foo(...) { ... }
戻り値のない場合、何もなしに書くのは、文法上マズイので、
foo(...) { ... } // 他のメソッドと書き方が異なってしまう
じゃあ、「戻り値なし」と書けばいいじゃん、
戻り値なし foo(...) { ... }
というのを英語に直して、
void foo(...) { ... }
と書きます。
ken
会議室デビュー日: 2005/05/04
投稿数: 5
投稿日時: 2005-05-04 11:29
かつのり様 a-san様

ご回答いただきまして、ありがとうございます。
"戻り値とは、メソッドの実行結果"
だということが理解できました。
また、voidを指定すると、
"メソッドの処理は終了"
だということも理解できました。
悩みが晴れました。
またよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)