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

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

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

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

Q&A

解決済

1回答

16217閲覧

コンパイルエラー illigal start of expression の意味がわかりません。

EriF

総合スコア2

Java

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

0グッド

1クリップ

投稿2020/06/23 12:29

Javaで3つのサブクラス、1つのメインクラスを使って半径と色を入力して円を描くをプログラムの課題しています。
以下の問題がどうしても解決できず、困っています。
よろしくお願いいたします。

発生しているエラー

Main.java:14: error: illegal start of expression public void setRadius(int sr) ^ Main.java:14: error: illegal start of expression public void setRadius(int sr) ^ Main.java:14: error: ';' expected public void setRadius(int sr) ^ Main.java:14: error: ';' expected public void setRadius(int sr) ^ Main.java:19: error: illegal start of expression public void setRGB(int c) ^ Main.java:19: error: illegal start of expression public void setRGB(int c) ^ Main.java:19: error: ';' expected public void setRGB(int c) ^ Main.java:19: error: ';' expected public void setRGB(int c) ^ Main.java:24: error: illegal start of expression public void setRadiusAndRGB(int sr, int c) ^ Main.java:24: error: illegal start of expression public void setRadiusAndRGB(int sr, int c) ^ Main.java:24: error: ';' expected public void setRadiusAndRGB(int sr, int c) ^ Main.java:24: error: <identifier> expected public void setRadiusAndRGB(int sr, int c) ^ Main.java:24: error: not a statement public void setRadiusAndRGB(int sr, int c) ^ Main.java:24: error: ';' expected public void setRadiusAndRGB(int sr, int c) ^ Main.java:30: error: illegal start of expression public void paintComponent(Graphics g) ^ Main.java:30: error: illegal start of expression public void paintComponent(Graphics g) ^ Main.java:30: error: ';' expected public void paintComponent(Graphics g) ^ Main.java:30: error: ';' expected public void paintComponent(Graphics g) ^ 18 errors Main.java:14: error: illegal start of expression public void setRadius(int sr) ^ Main.java:14: error: illegal start of expression public void setRadius(int sr) ^ Main.java:14: error: ';' expected public void setRadius(int sr) ^ Main.java:14: error: ';' expected public void setRadius(int sr) ^ Main.java:19: error: illegal start of expression public void serRGB(int c) ^ Main.java:19: error: illegal start of expression public void serRGB(int c) ^ Main.java:19: error: ';' expected public void serRGB(int c) ^ Main.java:19: error: ';' expected public void serRGB(int c) ^ Main.java:24: error: illegal start of expression public void serRadiusAndRGB(int sr, int c) ^ Main.java:24: error: illegal start of expression public void serRadiusAndRGB(int sr, int c) ^ Main.java:24: error: ';' expected public void serRadiusAndRGB(int sr, int c) ^ Main.java:24: error: <identifier> expected public void serRadiusAndRGB(int sr, int c) ^ Main.java:24: error: not a statement public void serRadiusAndRGB(int sr, int c) ^ Main.java:24: error: ';' expected public void serRadiusAndRGB(int sr, int c) ^ Main.java:30: error: illegal start of expression public void paintComponent(Graphics g) ^ Main.java:30: error: illegal start of expression public void paintComponent(Graphics g) ^ Main.java:30: error: ';' expected public void paintComponent(Graphics g) ^ Main.java:30: error: ';' expected public void paintComponent(Graphics g) ^ 18 errors

該当のソースコード

Java

1 2import java.awt.event.* ; 3import javax.swing.*; 4import java.util.*; 5 6public class PanelCircle extends JPanel 7{ // class 8 private int radius; 9 private int rgb; 10 11 public PanelCircle() 12 { 13 public void setRadius(int sr) 14 { 15 radius = sr; 16 } 17 18 public void serRGB(int c) 19 { 20 rgb = c; 21 } 22 23 public void serRadiusAndRGB(int sr, int c) 24 { 25 radius = sr; 26 rgb = c; 27 } 28 29 public void paintComponent(Graphics g) 30 31 { 32 g.setColor(rgb); 33 g.fillOval(10,10,radius*2,radius*2); 34 } 35 } 36 37} // end class

試したこと

以前書いたコードよりコピーして使用しているのに、エラーが出てしまいます。
何度もコピー、前のコードの見直しをしたのですが、どうしてもわかりません。

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

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

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

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

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

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

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

m.ts10806

2020/06/23 12:36

自身はこのコードを説明できるのでしょうか。
EriF

2020/06/23 12:40

何をさせたいのかは説明できますが、コーディング初心者のため、テキストで習ったことを引用、応用しているので、トンチンカンなのは承知しております。
m.ts10806

2020/06/23 12:43 編集

いえ、1行1行、1メソッド1メソッド、1クラス1クラス 意味や意図を説明できるか?と問うています。 まずそれができるようになることが先決では。 現在起きている現象を解消するだけならすぐです。ただ、それがこのコードの目的を果たすこと(要件通りの動作をすること)とはイコールではありません。 質問者さんが根本的な理解ができないと、どんなアドバイスも意味がありません。
EriF

2020/06/23 12:46

それはできます。
m.ts10806

2020/06/23 12:47

本当にできるなら、このエラーがなぜでているか分かるはずです。
guest

回答1

0

ベストアンサー

java

1 public PanelCircle() 2 { 3 public void setRadius(int sr)

メソッドの中で直接メソッドを定義することはできません。

投稿2020/06/23 12:31

maisumakun

総合スコア145121

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

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

EriF

2020/06/23 12:36

ありがとうございます。 では、この場合はどうしないといけないのでしょうか?
maisumakun

2020/06/23 12:37

えっと、何のためにsetRadiusをこの位置に書いたのですか?
EriF

2020/06/23 12:45

課題でもらったUML表に従ってコードを作成しました。 -radius : int -rgb :int +PanelCircle() +setRadius(int) : void +setRGB(int) : void +setRadiusAndRGB(int) : void +PaintComponent(Graphics) : void というUMLをもらいました。 ほかに3つコードを作成(mainは提供された)したのですが、これだけエラーが出てしまいました。
maisumakun

2020/06/23 12:46

単にメソッドを作りたいだけなら、コンストラクタのPanelCircle()を閉じる中括弧の外側に書いてください。
EriF

2020/06/23 12:49

わかりました。見直してみて、今まではPanelCircle()の中にvariableを宣言していたので、今回、なにも書かなかったことでわからなくなっていたみたいです。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問