パーソナルビジネスソフトとお役立ち情報のサイト
C++とJavaの比較2
(2/10)

4.全てのメソッドはクラスの本体の中で定義される。C++で言うと全ての関数がインラインであるように見えるが、そうではない。(インラインについては後述する)

5.Javaのクラス定義はおおよそC++と同様である。ただし定義終了のセミコロンは無い。Class foo;という形のクラス宣言はない。あくまでもクラス定義だけである。
class aType {
  void amethod( ) { /* メソッドの本体 */}
}
6.Javaはスコープ解決演算子::は持たない。Javaはすべての場合にドットを使う。javaではクラス内でのみ要素を定義するのでこれでやっていける。メソッドの定義すら常にクラス内で起きるので、やはりスコープの調整をする必要がない。staticなメソッドを呼ぶときの相違に留意されたい。その場合
ClassName.methodName(); となる。さらにpackageの名前もドットを使って定義される。C++の#includeと同様のことを行うためには予約語importを使う。例えば:import java.awt.*となる。

7.JavaはC++と同様に効率的なアクセスのための基本型を持つ。Javaの基本型は、
boolean, char, byte, short, int, long, float, doubleである。全ての基本型は移植性を配慮してマシン独立の一定のサイズを持っている。(このことは、マシンによって異なるが、性能に対し一定の影響を与えると考えられる。)型のチェック及び仕様はC++に比較して相当厳しい。例えば、
A.条件式はintegerではなく必ずbooleanでなければならない。
B.X+Yのような式の結果は必ず使用されなければならない。単に副作用のための”X+Y”ということは許されない。

8.基本型charは、16ビットの国際ユニコードを使用しているのでほとんどの国の文字を表せる。

9.静的に引用された文字列は、自動的にStringオブジェクトに変換される。CやC++のように独立した静的な文字配列は存在しない。

10.Javaは上位桁にゼロを加える論理右シフトを行う三重の右シフト>>>を追加している。>>はシフトの際に符号ビットを挿入する。(算術シフト)