質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

3回答

1304閲覧

戻り値のないメソッドやメソッド名から始める記述が正しいのか否か

mimimimin

総合スコア6

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/02/12 16:59

###戻り値のないメソッド名について

ここに質問の内容を詳しく書いてください。
現在、すっきり分かるJavaを使って勉強しています。

そこで、2点質問があります。
①戻り値の記載がないメソッド
②戻り値から始まっているメソッドがあり記述は
正しいのか疑問に思いました。

発生している問題・エラーメッセージ

①戻り値の記載なし。
Public class Hero{
:
public Hero()//コンパイルエラーが怒らなかった。
System.out.println("Heroのコンストラクタが作動)


String cntactPath(String folder,String file){
if(!folder.endWith("¥¥"))
folder += "¥¥"
}
return folder + file;

宜しくお願い致します。

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

メソッドには(voidの場合もあるけど)戻り値の型を表記しますよ。
public Hero()コンストラクタであって、メソッドではないです。

コンストラクタがインスタンスを生成する際に呼ばれるのに対して、
メソッド(静的なものを除く)は既に存在するインスタンスに紐づけて呼ばれます。


そこで、2点質問があります。

①戻り値の記載がないメソッド
②戻り値から始まっているメソッドがあり記述は
正しいのか疑問に思いました。

合わせて一つの質問に思えるのですが、どうでしょう。

投稿2018/02/12 17:05

編集2018/02/12 17:14
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

戻り値指定なく記述できるメソッドはコンストラクタのみです。(コンストラクタ以外の場合、不要ならばvoidと記載する必要がある。)

コンストラクタはクラス名と同一のメソッドであり、オブジェクト(インスタンス)が作成されたときに呼び出されるもの(newされたとき、初期化に使用する)です。
2018/2/13訂正
失礼、調査した結果javaの場合は以下になるようです。
コンストラクタは無名のメソッドです。ソースコードの定義時は便宜的にクラス名をメソッド名を代わりに記述し、戻り値は記述しません。なお、コンストラクタとは別にクラス名と同一のメソッドを定義することができます。

以下、独り言
この回答を書いていて気付いたけどjavaのファイナライザはvoid型でC++のデストラクタは戻り型なしだな・・・

投稿2018/02/12 22:06

編集2018/02/13 11:30
HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/02/13 08:10

『コンストラクタはメソッドの一種』だと捉えてしまってもいいのでしょうか? オラクルのドキュメントでは、メソッドに『似ている』という表現が多いようなのですが...
HogeAnimalLover

2018/02/13 11:31 編集

メソッドの一種だと私は考えています。
guest

0

メソッドの書き方は、

java

1[修飾子] 戻り値の型 メソッド名([仮引数型 引数名]をコンマ区切りで任意個数) { 2 メソッド本体 3}

と決まっています。[修飾子]の部分はなくても成立するので、戻り値の型から始まるメソッドは何らおかしくありません。

投稿2018/02/12 17:14

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問