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

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

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

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

Q&A

3回答

3382閲覧

【至急】javaの課題でエラーが消えずコンパイルが通りません。

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2017/01/22 08:16

###前提・実現したいこと
学校で銀行口座を作ると言う課題が出されているのですが、一個のエラーがどうやっても消えず悩んでいます。
言語はjavaです。
課題内容は

(1) このプログラムは,次のコマンドを提供する.
新規口座 … プログラムが起動されたときは,口座リストは空である.新規口座コマンドは新規に口座を開設し,その残高を0とする.
口座解約 … 口座名で指定される口座を解約し,口座情報を口座リストから削除する.解約できる口座は,残高が0のものに限る.
預金 … 口座名で指定される口座に指定された額を預金する.
引き出し … 口座名で指定される口座から指定された額を引き出す.
残高照会 … 口座名で指定される口座の残高を表示する.
(2) プログラムは次の場合エラーメッセージを出力する.
新規口座コマンド
・口座リストにある口座名で再び口座を開こうとしたとき
・20を超える口座を開こうとしたとき
口座解約コマンド
・残高が0でない口座を解約しようとしたとき
・口座リストにない口座名が指定されたとき
預金コマンド
・0以下の額を預金しようとしたとき
・口座リストにない口座名が指定されたとき
引き出しコマンド
・預金残高を越える額を引き出そうとしたとき
・口座リストにない口座名が指定されたとき
・0以下の額を引き出そうとしたとき
残高照会コマンド
・口座リストにない口座名が指定されたとき

(3) 作成にあたっては次の点に注意しなさい.
作成するクラス名はBankAppletとする.
注意しないとinitメソッドが大変大きくなり,デバッグがしにくくなる.各自でinitメソッドを複数のprivateなメソッドに分割するよう設計しなさい.
アプレットのソースコード中に,メソッド分割の理由と,分割方針がわかるようなコメントを記述すること.
分割した各メソッドごとに,そのメソッドの機能引数がある場合は,各引数の意味戻り値がある場合は,戻り値の意味をコメントに記述すること.
変数は,インスタンス変数にする必要があるものと,局所変数でよいものの2通りがある.インスタンス変数は,必要なものだけに限定すること.
変数やメソッドは,publicにする必要があるものと,privateでよいものの2通りがある.publicは必要なものだけに限定すること.

になります。

###発生している問題・エラーメッセージ

BankApplet.java:27: エラー: シンボルを見つけられません private Bank bankApplet; ^ シンボル: クラス Bank 場所: クラス BankApplet エラー1個

###該当のソースコード

java

1import java.applet.Applet; //import文 2import java.awt.Label; 3import java.awt.Button; 4import java.awt.Panel; 5import java.awt.BorderLayout; 6import java.awt.GridLayout; 7import java.awt.Color; 8import java.awt.Dimension; 9import java.awt.event.*; 10import java.awt.TextField; 11import java.awt.CardLayout; 12 13 14 15public class BankApplet extends Applet implements ActionListener{ 16 private Button button1,button2,button3,button4,button5; 17 private Label label1_me,label2_me,kuuhaku; 18 private Panel menuPanel; 19 private Panel openPanel; 20 private Button button1_op,button2_op; 21 private Label label1_op,label2_op,name_op; 22 private TextField tf_op=new TextField("",20); 23 private CardLayout bank; 24 private Panel bankPanel; 25 private Bank bankApplet; 26 27 28 29//387行目 30 public void init(){ 31 menu(); 32 open(); 33 close(); 34 withdraw(); 35 deposit(); 36 balance(); 37 38 bankPanel=new Panel(); 39 bank=new CardLayout(); 40 bankPanel.setLayout(bank); 41 bankPanel.add("1",menuPanel); 42 bankPanel.add("2",openPanel); 43 bankPanel.add("3",closePanel); 44 bankPanel.add("4",depositPanel); 45 bankPanel.add("5",withdrawPanel); 46 bankPanel.add("6",balancePanel); 47 48 this.add(bankPanel); 49 } 50 public void actionPerformed(ActionEvent e){ 51 /*bankApplet=new Bank();*/ 52 if(e.getSource() == button1){// menu -> open 53 label2_op.setText("開設する口座名を指定して下さい"); 54 bank.show(bankPanel,"2"); 55 56 } 57 if(e.getSource() == button2){// menu -> close 58 label2_cl.setText("解約する口座名を指定して下さい"); 59 bank.show(bankPanel,"3"); 60 } 61 if(e.getSource() == button3){// menu -> deposit 62 label2_de.setText("預金する口座名と金額を指定して下さい"); 63 bank.show(bankPanel,"4"); 64 } 65 if(e.getSource() == button4){// menu -> withdraw 66 label2_wi.setText("引き出しする口座名と金額を指定して下さい"); 67 bank.show(bankPanel,"5"); 68 } 69 if(e.getSource() == button5){// menu -> balance 70 label2_ba.setText("残高照会する口座名を指定して下さい"); 71 bank.show(bankPanel,"6"); 72 } 73 if(e.getSource() == button1_op){//open ok 74 String str=tf_op.getText(); 75 if(str.equals("")){ 76 label2_op.setText("記入すべき所が空白です"); 77 } 78 else{ 79 int result = bankApplet.doOpen(str);//戻り値0 アカウント作成成功 80 if(result == 0){ 81 bank.show(bankPanel,"1"); 82 tf_op.setText(""); 83 label2_me.setText("口座が作成されました"); 84 } 85 else if(result==-6){ 86 label2_op.setText("口座が20コあるため作成できません"); 87 } 88 else if(result==-5){ 89 label2_op.setText("同名のものが存在します"); 90 } 91 } 92 } 93 if(e.getSource() == button2_op){//open cancel 94 label2_me.setText("希望の選択をクリック!"); 95 tf_op.setText(""); 96 bank.show(bankPanel,"1"); 97 } 98 99 100 101 if(e.getSource() == button1_cl){//close 削除 102 String str=tf_cl.getText(); 103 if(str.equals("")){ 104 label2_op.setText("記入すべき所が空白です"); 105 } 106 else{ 107 int result = bankApplet.doClose(str);//戻り値0 アカウント作成成功 108 if(result == 0){ 109 bank.show(bankPanel,"1"); 110 tf_cl.setText(""); 111 label2_me.setText("口座が削除されました"); 112 } 113 else if(result==-5){ 114 label2_cl.setText("口座がないため削除できません"); 115 } 116 else if(result==-1){ 117 label2_cl.setText("残高が0円ではありません"); 118 } 119 } 120 } 121 if(e.getSource() == button2_cl){//close cancel 122 label2_me.setText("希望の選択をクリック!"); 123 tf_cl.setText(""); 124 bank.show(bankPanel,"1"); 125 } 126 127 128 129 130 if(e.getSource()==button1_wi){// withdraw ok 131 String str1=tf_wi.getText(); 132 String str2=tf2_wi.getText(); 133 if(str1.equals("") || str2.equals("")){ 134 label2_wi.setText("記入すべき所が空白です"); 135 } 136 else{ 137 int result =bankApplet.doWithdraw(str1,str2);//戻り値0 引き出し 138 if(result == 0){ 139 bank.show(bankPanel,"1"); 140 tf_wi.setText(""); 141 tf2_wi.setText(""); 142 label2_me.setText("正常に引き出されました"); 143 } 144 else if(result==-1){ 145 label2_wi.setText("預金残高を超えています"); 146 } 147 else if(result==-4){ 148 label2_wi.setText("金額が整数ではありません"); 149 } 150 else if(result==-3){ 151 label2_wi.setText("0以下のお金は引き出せません"); 152 } 153 else if(result==-5){ 154 label2_wi.setText("口座が存在しません"); 155 } 156 } 157 } 158 if(e.getSource() == button2_wi){//withdraw cancel 159 label2_me.setText("希望の選択をクリック!"); 160 tf_wi.setText(""); 161 tf2_wi.setText(""); 162 bank.show(bankPanel,"1"); 163 } 164 165 166 167 168 169 if(e.getSource()==button1_de){//deposit ok 170 String str1=tf_de.getText(); 171 String str2=tf2_de.getText(); 172 if(str1.equals("") || str2.equals("")){ 173 label2_de.setText("記入すべき所が空白です"); 174 } 175 else{ 176 int result = bankApplet.doDeposit(str1,str2);//戻り値0 アカウント作成成功 177 if(result == 0){ 178 bank.show(bankPanel,"1"); 179 tf_de.setText(""); 180 tf2_de.setText(""); 181 label2_me.setText("入金できました"); 182 } 183 else if(result==-3){ 184 label2_de.setText("0以下のお金は入金できません"); 185 } 186 else if(result==-4){ 187 label2_de.setText("金額が整数ではありません"); 188 } 189 else if(result==-5){ 190 label2_de.setText("口座が存在しません"); 191 } 192 } 193 } 194 195 if(e.getSource() == button2_de){//deposit cancel 196 label2_me.setText("希望の選択をクリック!"); 197 tf_de.setText(""); 198 tf2_de.setText(""); 199 bank.show(bankPanel,"1"); 200 } 201 if(e.getSource() == button1_ba){//balance ok 202 String str=tf_ba.getText(); 203 if(str.equals("")){ 204 label2_ba.setText("記入すべき所が空白です"); 205 } 206 else{ 207 int result=bankApplet.doBalance(str); 208 if(result >= 0){ 209 label2_ba.setText("残高は"+result+"円です"); 210 tf_ba.setText(""); 211 212 } 213 else if(result==-5){ 214 label2_ba.setText("口座が存在しません"); 215 } 216 } 217 } 218 219 220 if(e.getSource() == button2_ba){//balance cancel 221 label2_me.setText("希望の選択をクリック!"); 222 tf_ba.setText(""); 223 bank.show(bankPanel,"1"); 224 225 } 226 } 227}

###試したこと
private Bank bankApplet = new Bank();
にしたりもしたが、エラーが増えるだけでした。

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

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

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

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

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

guest

回答3

0

BankApplet.java:27: エラー: シンボルを見つけられません

private Bank bankApplet; ^

シンボル: クラス Bank
場所: クラス BankApplet

このメッセージのとおり、 Bank というクラスの定義が見つからないのだと思いますが、 doOpen, doClose などのメソッドを持つ Bank クラスをコーディングする必要があるのではないでしょうか?

投稿2017/01/22 08:28

mit0223

総合スコア3401

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

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

0

Bankという名前のクラスを作成するか、importする必要があります。
現時点では、Bankクラスをどこにも定義されていないため現在のエラーが出ていると思われます。

投稿2017/01/22 09:35

kaPong

総合スコア18

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

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

0

コンパイルだけはできるようにしたのが以下です

java

1import java.awt.Button; 2import java.awt.Panel; 3import java.awt.BorderLayout; 4import java.awt.GridLayout; 5import java.awt.Color; 6import java.awt.Dimension; 7import java.awt.event.*; 8import java.awt.TextField; 9import java.awt.CardLayout; 10import java.applet.Applet; //import文 11import java.awt.Label; 12 13 14public class BankApplet extends Applet implements ActionListener { 15 private Button button1, button2, button3, button4, button5; 16 private Label label1_me, label2_me, kuuhaku; 17 private Panel menuPanel; 18 private Panel openPanel; 19 private Panel closePanel; 20 private Panel depositPanel; 21 private Panel withdrawPanel; 22 private Panel balancePanel; 23 private Button button1_op, button2_op, button1_cl, button1_wi, button1_de, 24 button2_ba, button1_ba, button2_de, button2_wi, button2_cl; 25 private Label label1_op, label2_op, name_op, label2_cl, label2_de, 26 label2_wi, label2_ba; 27 private TextField tf_op = new TextField("", 20); 28 private TextField tf_ba = new TextField("", 20); 29 private TextField tf2_da = new TextField("", 20); 30 private TextField tf_da = new TextField("", 20); 31 private TextField tf2_de = new TextField("", 20); 32 private TextField tf_de = new TextField("", 20); 33 private TextField tf2_wi = new TextField("", 20); 34 private TextField tf_wi = new TextField("", 20); 35 private TextField tf_cl = new TextField("", 20); 36 37 private CardLayout bank; 38 private Panel bankPanel; 39 private Bank ams; 40 41 // 387行目 42 43 44 void menu() { 45 }; 46 47 void open() { 48 }; 49 50 void close() { 51 }; 52 53 void withdraw() { 54 }; 55 56 void deposit() { 57 }; 58 59 void balance() { 60 }; 61 62 public void init() { 63 menu(); 64 open(); 65 close(); 66 withdraw(); 67 deposit(); 68 balance(); 69 70 bankPanel = new Panel(); 71 bank = new CardLayout(); 72 bankPanel.setLayout(bank); 73 bankPanel.add("1", menuPanel); 74 bankPanel.add("2", openPanel); 75 bankPanel.add("3", closePanel); 76 bankPanel.add("4", depositPanel); 77 bankPanel.add("5", withdrawPanel); 78 bankPanel.add("6", balancePanel); 79 80 this.add(bankPanel); 81 } 82 83 public void actionPerformed(ActionEvent e) { 84 /* Bank=new Bank(); */ 85 if (e.getSource() == button1) {// menu -> open 86 label2_op.setText("開設する口座名を指定して下さい"); 87 bank.show(bankPanel, "2"); 88 89 } 90 if (e.getSource() == button2) {// menu -> close 91 label2_cl.setText("解約する口座名を指定して下さい"); 92 bank.show(bankPanel, "3"); 93 } 94 if (e.getSource() == button3) {// menu -> deposit 95 label2_de.setText("預金する口座名と金額を指定して下さい"); 96 bank.show(bankPanel, "4"); 97 } 98 if (e.getSource() == button4) {// menu -> withdraw 99 label2_wi.setText("引き出しする口座名と金額を指定して下さい"); 100 bank.show(bankPanel, "5"); 101 } 102 if (e.getSource() == button5) {// menu -> balance 103 label2_ba.setText("残高照会する口座名を指定して下さい"); 104 bank.show(bankPanel, "6"); 105 } 106 if (e.getSource() == button1_op) {// open ok 107 String str = tf_op.getText(); 108 if (str.equals("")) { 109 label2_op.setText("記入すべき所が空白です"); 110 } else { 111 int result = ams.doOpen(str);// 戻り値0 アカウント作成成功 112 if (result == 0) { 113 bank.show(bankPanel, "1"); 114 tf_op.setText(""); 115 label2_me.setText("口座が作成されました"); 116 } else if (result == -6) { 117 label2_op.setText("口座が20コあるため作成できません"); 118 } else if (result == -5) { 119 label2_op.setText("同名のものが存在します"); 120 } 121 } 122 } 123 if (e.getSource() == button2_op) {// open cancel 124 label2_me.setText("希望の選択をクリック!"); 125 tf_op.setText(""); 126 bank.show(bankPanel, "1"); 127 } 128 129 if (e.getSource() == button1_cl) {// close 削除 130 String str = tf_cl.getText(); 131 if (str.equals("")) { 132 label2_op.setText("記入すべき所が空白です"); 133 } else { 134 int result = ams.doClose(str);// 戻り値0 アカウント作成成功 135 if (result == 0) { 136 bank.show(bankPanel, "1"); 137 tf_cl.setText(""); 138 label2_me.setText("口座が削除されました"); 139 } else if (result == -5) { 140 label2_cl.setText("口座がないため削除できません"); 141 } else if (result == -1) { 142 label2_cl.setText("残高が0円ではありません"); 143 } 144 } 145 } 146 if (e.getSource() == button2_cl) {// close cancel 147 label2_me.setText("希望の選択をクリック!"); 148 tf_cl.setText(""); 149 bank.show(bankPanel, "1"); 150 } 151 152 if (e.getSource() == button1_wi) {// withdraw ok 153 String str1 = tf_wi.getText(); 154 String str2 = tf2_wi.getText(); 155 if (str1.equals("") || str2.equals("")) { 156 label2_wi.setText("記入すべき所が空白です"); 157 } else { 158 int result = ams.doWithdraw(str1, str2);// 戻り値0 引き出し 159 if (result == 0) { 160 bank.show(bankPanel, "1"); 161 tf_wi.setText(""); 162 tf2_wi.setText(""); 163 label2_me.setText("正常に引き出されました"); 164 } else if (result == -1) { 165 label2_wi.setText("預金残高を超えています"); 166 } else if (result == -4) { 167 label2_wi.setText("金額が整数ではありません"); 168 } else if (result == -3) { 169 label2_wi.setText("0以下のお金は引き出せません"); 170 } else if (result == -5) { 171 label2_wi.setText("口座が存在しません"); 172 } 173 } 174 } 175 if (e.getSource() == button2_wi) {// withdraw cancel 176 label2_me.setText("希望の選択をクリック!"); 177 tf_wi.setText(""); 178 tf2_wi.setText(""); 179 bank.show(bankPanel, "1"); 180 } 181 182 if (e.getSource() == button1_de) {// deposit ok 183 String str1 = tf_de.getText(); 184 String str2 = tf2_de.getText(); 185 if (str1.equals("") || str2.equals("")) { 186 label2_de.setText("記入すべき所が空白です"); 187 } else { 188 int result = ams.doDeposit(str1, str2);// 戻り値0 アカウント作成成功 189 if (result == 0) { 190 bank.show(bankPanel, "1"); 191 tf_de.setText(""); 192 tf2_de.setText(""); 193 label2_me.setText("入金できました"); 194 } else if (result == -3) { 195 label2_de.setText("0以下のお金は入金できません"); 196 } else if (result == -4) { 197 label2_de.setText("金額が整数ではありません"); 198 } else if (result == -5) { 199 label2_de.setText("口座が存在しません"); 200 } 201 } 202 } 203 204 if (e.getSource() == button2_de) {// deposit cancel 205 label2_me.setText("希望の選択をクリック!"); 206 tf_de.setText(""); 207 tf2_de.setText(""); 208 bank.show(bankPanel, "1"); 209 } 210 if (e.getSource() == button1_ba) {// balance ok 211 String str = tf_ba.getText(); 212 if (str.equals("")) { 213 label2_ba.setText("記入すべき所が空白です"); 214 } else { 215 int result = ams.doBalance(str); 216 if (result >= 0) { 217 label2_ba.setText("残高は" + result + "円です"); 218 tf_ba.setText(""); 219 220 } else if (result == -5) { 221 label2_ba.setText("口座が存在しません"); 222 } 223 } 224 } 225 226 if (e.getSource() == button2_ba) {// balance cancel 227 label2_me.setText("希望の選択をクリック!"); 228 tf_ba.setText(""); 229 bank.show(bankPanel, "1"); 230 231 } 232 } 233} 234 235 236class Bank{ 237 int doOpen(String f) { 238 return 0; 239 }; 240 241 int doClose(String f) { 242 return 0; 243 }; 244 245 int doBalance(String f) { 246 return 0; 247 }; 248 249 int doWithdraw(String f, String s) { 250 return 0; 251 }; 252 253 int doDeposit(String f, String s) { 254 return 0; 255 }; 256 257}

投稿2017/01/22 08:57

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問