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

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

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

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

Q&A

解決済

2回答

2604閲覧

コードList2_34.javaがエラーが出て実行できない

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2018/04/28 05:28

eclipseの参考書で勉強中です。コードList2_34.javaを実行したいのですがエラーが出て
コンパイル出来ません。
オーバーロード、オーバーライドの説明の箇所です。
class Computer{},class PersonalComputer extends Computer{}の頭にエラーのマークがあって。マウスを持っていくと
型Computerは既に定義されています。型PersonalComputerは既に定義されています。とでます。
List2_25.javaにclass Computerがあって、 List2_27.javaのmainにclass PersonalComputerがあります。
List2_34.javaをこのようにするとここにあるComputer、PersonalComputerが先に実行されるのではないのですか。
tree はプロジェクトJava_sample/src/java_sample(pakage)/List2_34.javaとなっています。
教えてください。

コード //List2_34.java package java_sample; class Computer{ String system = "no"; String user = "nobody"; void installSystem (String os, String usr){ system = os; user = usr; } void printData() { System.out.println("System:" + system + "\tUser Name:" + user); } } class PersonalComputer extends Computer{ int cpu = 0; void installSystem(String os,String usr) { system = os; user = usr; cpu = 16; } void installSystem(String os,String usr,int c) { system = os; user = usr; cpu = c; } void printData() { System.out.println("System:" + system + "\tUser Name:" + user + "\tCPU:" + cpu); } } public class List2_34 { public static void main(String[] args) { PersonalComputer pc = new PersonalComputer(); pc.installSystem("Windows XP","Tuyano",32); pc.printData(); } }

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

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

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

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

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

guest

回答2

0

ベストアンサー

同一のパッケージにはpublicかそうでないかにかかわらず同じ名前(厳密にはFull Qualified Name)のクラスは一つしか定義できません。

+src java_sample + A.java class Computer(publicでないクラス) + B.java class Computer(publicでないクラス)

こういう定義は許されないのです。どっちが本当のjava_sample.Computerクラスなのか区別できないからです。ソースファイルの順番(作成した順番とか名前の順番とか)は言語仕様上の意味はありません。どれも等しく同列と扱われます。A.javaの方が優先されるとかB.javaに書いてあるクラスが優先されるなんて仕様はないのです。

投稿2018/04/28 05:38

編集2018/04/28 05:47
KSwordOfHaste

総合スコア18394

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

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

退会済みユーザー

退会済みユーザー

2018/04/28 05:53

ありがとうございます。この場合projectからすべて新しくして実行するんでしょうか。 まだコンパイルの仕方がよくわかってないみたいです。同じクラスがjava_sampleになければいいということですか。新しいプロジェクトを作ってやってみます。
退会済みユーザー

退会済みユーザー

2018/04/28 06:00

できました
KSwordOfHaste

2018/04/28 06:02

プロジェクトを作り直しても単に不必要なソースを消してもいいです。 こまかな修正をしながらいろいろ試すならプロジェクトを一々作り直すのは非効率ですので、必要に応じてソースを書き換えたりいらなくなったソースを消せばよいと思います。
退会済みユーザー

退会済みユーザー

2018/04/28 06:13

プログラムを保存しておきたいのですけど、どうすればいいですか。ソースを消すとそのソースはなくなるんですか。c言語はterapadを使っていましたのでつまづいたコメントなど入れていて保存しています。復習ようです。eclipseはコードを書くのが楽でいいですね。ありがとうございます。がんばります。
guest

0

基本的に1ファイルに複数クラスは書かないでください。
他のJavaファイルに定義してるのでしょ

投稿2018/04/28 05:34

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/04/28 06:06

ありがとうございます。eclipseの参考書を読み進んでいるのですが、例えば1章にあるコードを書いて実行するときには、すべてプロジェクトを新しくして実行しなければいけないんでしょうか。 いままで2章の後半まで来たのですが、プロジェクトjava_sampleにコードをすべて入れてコンパイル、実行してきたのですが、まちがっていますか?教えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問