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

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

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

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

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

Q&A

2回答

693閲覧

クラス名を定義できない

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

0グッド

1クリップ

投稿2020/06/05 05:19

編集2020/06/06 12:14

public String getName(){
return name;
}

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

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

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

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

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

maisumakun

2020/06/05 05:27

これはそのままコピペしたものですか?(一部に全角}があって、その時点でコンパイルが通りません)
退会済みユーザー

退会済みユーザー

2020/06/06 12:16 編集

return count;
maisumakun

2020/06/05 05:39

> 「試したこと」に記述してあるコードは僕自身が作成したものです。 このコードをそのまま貼り付けてもSyntax Errorになってしまい、「Drinkを型に解決できません」というエラーにすらたどり着かない状態です。 https://paiza.io/projects/czTwizcD003JPHKyWCWYJg
退会済みユーザー

退会済みユーザー

2020/06/06 12:16 編集

return count;
maisumakun

2020/06/05 06:01

全部を1本のファイルに書いていますか?それともMainとDrinkで別ファイルにしていますか?
ozwk

2020/06/05 06:02

質問文のコードとあなたが今動かしているコードが違うっぽいので あなたが実際に動かしているコードをコピペしてください。 ということです。 (質問文は編集できます)
退会済みユーザー

退会済みユーザー

2020/06/06 12:17 編集

return count;
maisumakun

2020/06/05 06:21

> すみません。質問文のコードと僕が今動かしているコードは同じものです。 本当ですか?すでに書いたように、質問文内のコードでは全く違うエラーが出ます。
退会済みユーザー

退会済みユーザー

2020/06/06 12:17 編集

Eclipse
maisumakun

2020/06/05 06:32

では、同じコードをsonjonwiさんのほうでpaiza.ioで実行しようとするとどうなりますでしょうか。
maisumakun

2020/06/05 06:35

「Drinkを型に解決できません」というエラーメッセージは、「どこへどのように」表示されたものですか?
退会済みユーザー

退会済みユーザー

2020/06/06 12:17 編集

maisumakun
退会済みユーザー

退会済みユーザー

2020/06/06 12:18 編集

return count;
ozwk

2020/06/05 06:58

error: illegal character: ... とかでてないですか?
退会済みユーザー

退会済みユーザー

2020/06/06 12:18 編集

return count;
javahack

2020/06/05 16:25

コンパイルできる最新のコードをマークダウンで質問文の追記として提示してもらえないでしょうか。 マークダウンは以下のような感じで。 ```Java コード ```
退会済みユーザー

退会済みユーザー

2020/06/06 12:16 編集

問題文を修正しました。
javahack

2020/06/05 16:45 編集

マークダウン記法がわからないのでしょうか? https://teratail.com/help#about-markdown あと、「コンパイルできる」コードと書いたのですが。 最初のコードより悪くなってません?
退会済みユーザー

退会済みユーザー

2020/06/06 12:25

消えた
guest

回答2

0

paiza.ioで実行してみるとまずerror: illegal character:~~~(意訳:「変な文字が入ってる」)
エラーの言う通りの行を見ると全角文字になっていたり全角空白入ってたりするので直します
(全角英数字記号空白が簡単に入力できて良いことは無いのでこの際なのでIMEの設定を変更しましょう)

他のエラーはひとまず置いておいて、再度実行してみると今度は
error: class Drink is public, should be declared in a file named Drink.java
と「publicにするならファイル分けろ」と怒られます。
とりあえずファイルは分けないことにして、publicを消します。

他のエラーはひとまず置いておいて、再度実行してみると今度は
error: xxxx has private access in Drinkなどと怒られるので
とりあえずこのエラーが出ているところを全部消します。
ついでに
error: cannot find symbol
とでている行も全部消します。

他のエラーはひとまず置いておいて、再度実行してみると今度はエラーが出なくなりました。

この時点でこんな感じです。

java

1public class Main { 2 3 public static void main(String[] args) { 4 5 Drink d =new Drink(); 6 System.out.println("商品名\t\t単価\t数量\t金額"); 7 } 8} 9 10class Drink { 11 12 private String name; 13 14 private int price; 15 16 private int count; 17 18 public Drink() { 19 } 20 21 public Drink(String name, int price, int count) { 22 this.name = name; 23 this.price = price; 24 this.count = count; 25 } 26 27 private int getTotalPrice() { 28 int total = count * price; 29 return total; 30 } 31 32 public static void printTitle() { 33 System.out.println("商品名\t\t単価\t数量\t金額"); 34 } 35 36 public void printData() { 37 System.out.println(name + "\t\t" + price + "\t" + 38 count + "\t" + getTotalPrice()); 39 } 40 41 public String getName(){ 42 return name; 43 } 44 45 public int getPrice(){ 46 return price; 47 } 48 49 public int getCount(){ 50 return count; 51 } 52 53}

後は意図したとおりに動くように書き換えましょう。

投稿2020/06/05 07:10

ozwk

総合スコア13553

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

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

退会済みユーザー

退会済みユーザー

2020/06/06 12:15 編集

public int getCount(){ return count; } }
ozwk

2020/06/05 10:57

エラー出てるから消した行をなんでそのまま復活させてるんですかね
退会済みユーザー

退会済みユーザー

2020/06/06 12:15 編集

return count;
ozwk

2020/06/05 12:21

できてないですよね?じゃあ違うんですよ 何回も書いてたらコンピュータに熱意が伝わるとかないですから 一生懸命書いた引数付きコンストラクタ、いつ使うんだろうとか思いません? 自分でprivateって書いておいて外からアクセスしようとしてるのはなぜですか? name()なんて名前のメソッドどこにありますか?
退会済みユーザー

退会済みユーザー

2020/06/06 12:15 編集

class Drink is public
ozwk

2020/06/05 22:34

get...は使わなくていい 引数ある方のコンストラクタを使え printDataとprintTitleを定義しただけで満足するな使え って感じです 多分ですけどこの問題を解くには早過ぎです 2,3歩ほど戻りましょう
guest

0

ひとまず、中括弧を全角から半角に直してみましょう。

正しい区切りになっていないためにクラスがクラスとして認識されない状態になっていることは間違いないです。

投稿2020/06/05 06:45

maisumakun

総合スコア146018

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

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

退会済みユーザー

退会済みユーザー

2020/06/06 12:15 編集

、public class Drink
maisumakun

2020/06/05 07:09

> public class Drink {のエラーメッセージ どのようなものが出ていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問