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

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

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

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

コンストラクタ

オブジェクト指向言語において、オブジェクトを生成時に呼び出され、データの初期化などを行なう関数・メソッドのことである。

Q&A

解決済

2回答

1175閲覧

java オーバーロード this( ) コンストラクタ

tmp0

総合スコア21

Java

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

コンストラクタ

オブジェクト指向言語において、オブジェクトを生成時に呼び出され、データの初期化などを行なう関数・メソッドのことである。

0グッド

1クリップ

投稿2020/08/25 04:25

いつもお世話になっております。
またお知恵と考え方をご教授いただければと思います。
以下のコードでいくつかお聞きしたいことがあります。
本当に初歩的で申し訳ないのですが一つひとつ自分の理解度が低いところを見つけて潰していくしか方法がないと思いましたのでアップさせて頂きます。
①privateフィールドはこのPhotoクラス内であれば代入はできる。他クラスからは代入できないという認識はあってますでしょうか。
②5行目Photo()と9行目Photo(String title)はコンストラクタなのでしょうか。
私がこれまで学んだ知識ではpublicがついているものでしたがpublicはいらないのでしょうか。
③printInfoメソッドにもpublicはなくて良いのでしょうか。

コード public class Photo{ private String size; private String title; Photo(){ this("refresh"); this.size = L; } Photo(String title){ this.title = title; } void printInfo(){ System.out.println(title + " " +size); } public static void main(String[] args){ Photo p = new Photo(); p.printInfo(); } }

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

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

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

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

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

guest

回答2

0

ベストアンサー

①privateフィールドはこのPhotoクラス内であれば代入はできる。他クラスからは代入できないという認識はあってますでしょうか。

あっています。
Photoクラスに public void setSize(String size) みたいなメソッドを定義すればセットできるようにすることもできます。

②-1 5行目Photo()と9行目Photo(String title)はコンストラクタなのでしょうか。

どちらもコンストラクタです。
前者は new Photo(); したときに使われます。
後者は new Photo("photo title"); のように、引数を指定した場合に使われます。

②-2私がこれまで学んだ知識ではpublicがついているものでしたがpublicはいらないのでしょうか。
③printInfoメソッドにもpublicはなくて良いのでしょうか。

publicはアクセス修飾子と言います。
publicがないとパッケージプライベートになるので、同一パッケージのクラスからのみアクセス可能ということになります。

投稿2020/08/25 04:35

YakumoSaki

総合スコア2027

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

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

tmp0

2020/08/25 05:17

ありがとうございます。
guest

0

②5行目Photo()と9行目Photo(String title)はコンストラクタなのでしょうか。

はい。

私がこれまで学んだ知識ではpublicがついているものでしたがpublicはいらないのでしょうか。
printInfoメソッドにもpublicはなくて良いのでしょうか。

publicを指定しない場合、package privateなコンストラクタ・メソッドとなります(同じパッケージ内からしか呼べません)。

投稿2020/08/25 04:27

maisumakun

総合スコア145183

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

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

tmp0

2020/08/25 05:17

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問