[J2SE1.4] Java言語の基礎

Q1 コンパイルしたらどうなる?

01:package javabasic;
02:
03:public class JavaBasic1 {
04:
05: private void func() {
06: System.out.println("SJC-P!");
07: }
08:
09: public static void main(String[] args) {
10: JavaBasic1 a = new JavaBasic1();
11: a.func();
12: }
13:}

a. L3でエラー
b. L5でエラー
c. L10でエラー
d. L11でエラー
e. エラーなし

A1

e

まず、
L.10でmain()メソッドから、自分自身のオブジェクトを作れるのか。
→自分自身のクラスに含まれるメソッドから、自分自身のオブジェクトを作ることは出来る。
次に、
L.11でprivateなインスタンスメソッドfunc()を呼び出せるのか。
→インスタンスメソッドは オブジェクトに対して呼び出しを行うことと、
 アクセス修飾子privateは 自分自身のクラスの中からはアクセスできること
 ことから問題なし。
よって、
コンパイル出来る。

--------------------------------------------------
Q2 コンパイルしたらどなる?

01:package javabasic;
02:
03:interface JavaBasicIF {
04:  String name = "hogehoge";
05:  public void func1();
06:  int func2();
07:  public abstract String func3();
08:}
09:
10:public class JavaBasicImpl implements JavaBasicIF {
11:  public void func1() {
12:    syso("func1");
13:  }
14:  
15:  int func2() {
16:    syso("func2");
17:    return 0;
18:  }
19:  
20:  public String func3() {
21:    syso("func3");
22:    return name;
23:  }
24:}

a. L4でエラー
b. L11でエラー
c. L15でエラー
d. L20でエラー
e. エラーなし

A2

c

インタフェースは、定数と抽象メソッドしか定義できない。
各メンバのシグニチャは、変数であればpublic final staticが、メソッドであればpublic abstractが自動付加される。

実装クラスは、インタフェースで定義された抽象メソッドと同じシグニチャのメソッドを定義する必要がある。
L6で定義されているのはpublic abstractなので、L15もpublicでなくてはならない。

--------------------------------------------------
Q3 正しいのは?

a. byteは、-127から128までの数値を扱える。
b. unsigned byteは、0から255までの数値を扱える。
c. intの最大値は、Integer.MAX_VALUEで得られる。
d. byte a = 10; byte b = 20; byte c = a + b;は文法的に正しい。
e. char c = 5000;は文法的に正しい。

A3

×a.
   byteで扱えるのは、-128~127までの数値。
×b.
   javaに、unsignedなんてない。
○c.
   各基本データ型に対応するラッパクラスの
   MAX_VALUE、MIN_VALUE static変数で、最大、最小値を得られる。
×d.
   整数型は演算の際全てintにキャストされてから計算される。
   byte c = a + b;の右辺の演算結果はintになるため、コンパイルエラーになる。
○e.
   charは、2バイトの符号なし整数(0~65535)を扱える。
--------------------------------------------------
Q4

a. strictfpは変数やメソッドの前に指定するJavaの修飾子である。
b. transientは、オブジェクトをシリアライズする際に、シリアライズ対象のフィールドにつける修飾子である。
c. volatileは、コンパイラに指示を与えるための修飾子である。
d. gotoを使ってラベルをつけた行へジャンプできる。

A4

×a.
   strictfpは、classやinterfaceの前につける修飾子。
   修飾子 strictfp を付与しクラスやメソッドを宣言した場合、
   そのスコープ内の式は全て FP-strict となる。
   FP-strict の式内では、計算の中間結果の表現もすべて
   IEEE 754 規格に定められた数値集合が使用される。
   逆に strictfp で宣言されていないクラスやメソッド内の式では、
   中間結果の表現に指数拡張範囲を用いる裁量が実装に対して許されている。
   つまりプラットフォームによって IEEE 754 規格外の数値集合が
   使われる可能性があり、式内の浮動小数点数の動作が変わる可能性があるということ。
×b.
   transientは、オブジェクトをシリアライズする際に、
   シリアライズ対象外のフィールドにつける修飾子。
○c.
   volatileは、コンパイラがフィールドに対して行う最適化を行わないように指示する修飾子。
×d.
   javaでは、gotoは意味の無い予約語。



goto [J2SE1.4] INDEX

tag : SJC-P

2008-06-25 00:48 : __lang__java : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud