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

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

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

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

Q&A

解決済

2回答

393閲覧

【Java】オーバーロードについて勉強しています。文字の出力でつまずいています。

ypk

総合スコア80

Java

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

0グッド

1クリップ

投稿2020/05/16 06:21

初めまして。
現在書籍を用いてJavaの学習をしているものです。
オーバーロードについて学んでいます。

#実現したいこと
「鍵でロックしました」という文言を出力させたいです。

#私が書いたコード

Java

1class Car { 2 void lock(Key key) { 3 System.out.println("鍵でロックしました"); 4 } 5 6 void lock(RemoteController controller) { 7 System.out.println("リモコンでロックしました"); 8 } 9}

Java

1public class Main { 2 3 public static void main(String[] args) { 4 Car car1 = new Car(); 5 Key key = new Key(); 6 car1.lock(key); 7 } 8 9}

#出てくるエラー

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Key cannot be resolved to a type
Key cannot be resolved to a type

at Main.main(Main.java:7)

#メモ
"鍵でロックしました"はKey classを作成しなければ出力させることができないのでしょうか?オーバーロードについても、正直あまりよく理解していない状態です。

もし何か、お気づきの個所などございましたらご指摘いただけたらと思います。
どうぞよろしくお願いいたします。

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

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

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

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

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

m.ts10806

2020/05/16 06:22

>現在書籍を用いて 書籍名を提示してください。
ypk

2020/05/16 06:24

「スラスラわかるJava」です。
m.ts10806

2020/05/16 06:24

Keyクラスは書いてないんでしょうか? 定義されてないものは当然使うことは出来ません。
m.ts10806

2020/05/16 06:25

>スラスラわかるJava タイトルだけで買ってませんよね?
ypk

2020/05/16 06:27

Keyクラスは書いていないですね、、、 一応中身を確認してから購入しました
m.ts10806

2020/05/16 06:29

変数と同じです。未定義では使えません。 というか、何でコード書いてますか? eclipseなどのIDEを使って開発すればそもそも実行前にエラーが分かります。
ypk

2020/05/16 06:34

VScodeです
m.ts10806

2020/05/16 06:38

ビルド通らないのでは。 定義されてないクラスは引数でも使えませんよ。 RemoteController も同様。 書籍に何も書いてないと思えません。
guest

回答2

0

ベストアンサー

VSCodeは利用したことないですが、eclipseだとそもそもこうなります。
イメージ説明

RemoteController も同じです。

定義していないものは参照できません。
なので端的には「定義すればいい」です。

「どう定義すればいいか」は要件次第です。
何に使うものなのか。

エラーなくすだけなら中身を空でもクラス作ったらそれで解決です。

でも、提示した画面キャプチャの候補にあるように「Key」という名前はJavaの機能にも既にあったりします。
ということで「要件次第」です。
そのKeyってどういう役割をするもの?
Javaの既存機能で提供されているものなのか?自分で作るものなのか?

書籍を利用しているのであればその辺りがきちんと説明されているはずです。
既存機能であればimportが必要ですし、自分で作る必要があるのなら何かしら言及されていないとコードの整合性が取れません。
※本当にないなら書籍の出版元に抗議してください。

投稿2020/05/16 07:13

編集2020/05/16 07:14
m.ts10806

総合スコア80852

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

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

m.ts10806

2020/05/16 07:26

オーバーロードより先に覚えることがありますね。もっと基礎的な部分。
ypk

2020/05/16 09:31

ご丁寧にありがとうございました。出直します。この度はありがとうございました。
m.ts10806

2020/05/16 09:38

「出直す」をどういう意図で言っているのか分かりませんが、 1つ1つ確実にしていけばいいと思います。 書いた通りにしか動きませんので。
guest

0

Keyクラスの定義がありません

投稿2020/05/16 06:22

y_waiwai

総合スコア87784

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

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

ypk

2020/05/16 06:28

ありがとうございます。 勉強不足で大変申し訳ないのですが、Keyクラスをどのように定義すれば「鍵でロックしました」を出力することができるでしょうか。お手数をおかけしますが、どうぞよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問