みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaプログラムの質問です。お願いします

1このプログラムの全てのインスタンス変数について、変数名を書いてください。

2全てのメソッド名を書いてください。

よろしくお願いします。


1: import java.awt.event.*;
2: import java.awt.*;
3: import java.io.*;
4: import java.net.*;
5:
6: public class Test71 {
7: private MyCanvas c;
8: public static void main( String[] args ) {
9: Test71 t71 = new Test71();
10: t71.doEvent();
11: }
12:
13: Test71() {
14: Frame f = new Frame( "Test71" );
15: f.setSize( 640, 480 );
16: f.addWindowListener( new WindowAdapter() {
17: @Override public void windowClosing( WindowEvent e ) {
18: System.exit( 0 );
19: }
20: });
21: c = new MyCanvas();
22: f.add( c );
23: f.setVisible( true );
24: }
25:
26: public void doEvent(){
27: try{
28: ServerSocket ss = new ServerSocket( 8000 );
29: while( true ) {
30: Socket socket = ss.accept();
31: BufferedReader br = new BufferedReader(
new InputStreamReader( socket.getInputStream() ) );
32: BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter( socket.getOutputStream() ) );
33: while( true ) {
34: String command = br.readLine();
35: String[] words = command.split( " " );
36: System.out.println( command );
37: if( words[0].equalsIgnoreCase( "setOval" ) ) {
38: try {
39: c.setPoint(
Integer.parseInt( words[1] ),
Integer.parseInt( words[2] ) );
40: } catch( Exception e ) {}
41: } else if( words[0].equalsIgnoreCase( "changeMode" ) ) {
42: //描画方式を変更する処理
43: }
44: else if( words[0].equalsIgnoreCase( "quit" ) ) {
45: break;
46: }
47: }
48: bw.close();
43
49: br.close();
50: socket.close();
51: }
52: } catch( Exception e ) {
53: e.printStackTrace();
54: }
55: }
56: }

投稿日時 - 2013-12-07 16:32:25

QNo.8376894

すぐに回答ほしいです

質問者が選んだベストアンサー

http://okwave.jp/qa/q8377044.html から考えると、質問者さん、もしくはその教科書がインスタンス変数とローカル変数を混同しているようです。私も Test71 のインスタンス変数は1つだと思いますよ。

ローカル変数
http://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E5%A4%89%E6%95%B0

インスタンス変数
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E5%A4%89%E6%95%B0

もし、wikipedia が信用ならないと思うなら、オブジェクト指向プログラミングの入門書を見るなり、「Java ローカル変数 メンバ変数」辺りでWebを検索すれば、その辺りの解説が無数に見つかると思いますよ。

http://www2.ocn.ne.jp/~notes/java/java14.html

なお、Javaではクラスで定義された変数(メンバ変数)をフィールドと呼びます。インスタンス変数を指して「インスタンスフィールド」と書くことも有ります。


> 2全てのメソッド名を書いてください。

質問文のコード内で定義されているメソッドという意味では、Test71 の(コンストラクタを除いた)メンバが2つ、無名クラスのメソッドが1つ有ります。
基本的なメソッド定義の文法が分かれば、メソッド名を挙げるのは簡単でしょう。
http://www.techscore.com/tech/Java/JavaIntro/6/

投稿日時 - 2013-12-08 12:38:14

ANo.5

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

>インスタンス変数は何行目ですか?その一つが何なのかを教えてください

教科書でインスタンス変数の説明がされているでしょうから、それを理解できるまで何度でも読むことをお勧めします。
今の状態で回答を得たところで同じような問題にあったときにわからないと思いますよ。

投稿日時 - 2013-12-07 22:57:23

ANo.3

> 1このプログラムの全てのインスタンス変数について、変数名を書いてください.
#1の方の回答が正しいと思います。
プログラムの中で使っているSystemクラスのout変数はインスタンス変数ではなく、クラス変数です。他にインスタンス変数を使っているような箇所は見当たりません。
> 2全てのメソッド名を書いてください。
このクラス内で定義しているメソッドの他に、
ピリオド.と開きかっこ(ではさまれている綴りはすべてメソッド名です。
コンストラクターもメソッドであるというのなら、キーワード new と開きかっこではさまれた綴りもメソッド名です。

投稿日時 - 2013-12-07 18:51:16

補足

インスタンス変数は何行目ですか?その一つが何なのかを教えてください

投稿日時 - 2013-12-07 21:20:59

ANo.2

>インスタンス変数はひとつではないと思います。

インスタンス変数というのはインスタンス毎に割り当てられるメンバ変数の事です。
それを元に数えてみてください。

投稿日時 - 2013-12-07 18:44:40

ANo.1

>1このプログラムの全てのインスタンス変数について、変数名を書いてください。

インスタンス変数1つしかありませんけど。

>2全てのメソッド名を書いてください。

もしかして「インスタンス変数」や「メソッド」の意味がわかっていませんか?
もしそうなら教科書読み直しをお勧めします。

投稿日時 - 2013-12-07 17:20:29

補足

インスタンス変数はひとつではないと思います。これは教科書の問題なのでおかしいという事もありません。

投稿日時 - 2013-12-07 18:13:29