〜〜 C++講座・JAVA講座・VB講座・ネット収入講座・アフィリエイト講座・メール受信講座・株講座・投資信託講座・お小遣い講座 〜〜

   MENU           == JAVA基本講座 ==

1. はじめに
2. 変数/データ型
3. 文字列
4. 配列
5. 文法関連(C++との違い)
6. 継承
7. static(変数、関数、初期化)
8. コンストラクタ/デストラクタ
9. ガーベッジコレクション
10. インタフェース
11. パッケージ
12. 例外処理



 得@スキルアップ塾.com > JAVA基本講座 > 5. 文法関連(C++との違い)

   文法関連(C++との違い)


■講義一覧

 1. 変数宣言
 2. importとinclude(ヘッダー)
 3. 制御文(if,for,switch)
 4. クラス定義について
 5. コンストラクタ/デストラクタについて
 6. 継承について
 7. ポインタについて
 8. 値渡し/参照渡し
 9. 前方参照について
 10. プリプロセッサについて
 11. ガーベッジコレクション(メモリリーク)
 12. インライン関数(inline)について
 13. スコープ演算子について


■1. 変数宣言

 ・初期値を定義しない場合は、"0"で初期化される。
  ⇒C++では、初期化されない

 ・char型は16ビット(2バイト)のユニコードで扱う。
  ⇒C++では、8ビット(1バイト)で処理を行う。

 ・boolean型のtrue,falseは数値としては扱えない。
  ⇒C++では、trueを0以外、falseを0の数値で扱うことができる。

一覧へ


■2. importとinclude(ヘッダー)

 ・JAVA言語では、ヘッダーという概念はなく、"import"定義より他クラスの情報やライブラリの
  呼び出しを可能にする。
  ⇒C++では、ヘッダーファイル又はライブラリの追加より対応する

一覧へ


■3. 制御文(if,for,switch)

 ・if文:C++と同じです。

 ・for文:C++と同じです。

 ・switch文:C++とほぼ同じですが、条件式に入る対象の変数型は以下のとおりです。
   ⇒byte型、short型、int型、char型 ※long型はコンパイルエラーになるので注意
  

一覧へ


■4. クラス定義について

 ・クラス定義終了時にセミコロンが無い。
  ⇒C++では、セミコロンが無い場合、コンパイルエラーになる。

 ・C++のクラスとは、関数定義が可能で且つ、アクセス制御ができる構造体とも言える。

一覧へ


■5. コンストラクタ/デストラクタについて

 ・コンストラクタが定義されていない場合、デフォルトコンストラクタが自動的に定義される。

 ・JAVA言語では、デストラクタはありません。ガーベイジコレクタによって制御される為、
  プログラマは意識する必要はない。
  ⇒C++では、クラスのデストラクタで解放処理などを定義する。

一覧へ


■6. 継承について

 ・JAVA言語では、1つのクラスからしか継承ができない
  ⇒C++では、複数のクラスから継承が可能。

 ・階層の制限はありません。
  ⇒C++も同様。

 ・JAVA言語の場合、コンストラクタは継承されません!
  サブクラスでは、明示的にsuper()を定義し、親クラスのコンストラクタを呼び出さなければいけません。
  ※サブクラスにsuper()が定義されていなかった場合、コンパイラが自動的に追加してくれます。
  ⇒C++で継承した場合、親クラスから順にコンストラクタが呼ばれます。
   デストラクタは逆に子クラスから呼び出されます。

一覧へ


■7. ポインタについて

 ・JAVA言語では、ポインタの概念がありませんっとよく解説書やWEBページで聞きますが、
  実際は誤った表現です。

 ・正式には言うのであれば、JAVA言語にはポインタ演算がありません。※ポインタ自体は存在します。

 ・ポインタとは、アドレスを代入する変数であり、オブジェクトや配列などはポインタです。
  ただ、上記のとおり、C++言語で行っていたポインタに+1を値を取得といったことを禁止しています。

一覧へ


■8. 値渡し/参照渡し

 ・JAVA言語では、関数の引数を値渡しか参照渡しか引数の型によって変わります。
  ⇒C++では、ポインタや&(参照渡し)で任意に指定できる。

 ・プリミティブ型(boolean,char,byte,short,int longなど)は、すべて値渡しになります。

 ・クラスや配列の場合は、参照渡しになります。

【補足】
値渡し:呼び出し元で指定した引数がコピーされ、関数内で変更しても呼び出し元へは変更がない。
参照渡し:引数にはアドレスが渡され、関数内で変更した場合、呼び出し元も変更される。


一覧へ


■9. 前方参照

 ・JAVA言語では、コンパイラが自動的に確認する為、明示的にクラスを定義する必要はない

【前方参照】
・クラス内で他クラスを定義する場合、他クラスが定義前のときはコンパイラに教える必要があります。
 この宣言のことを、前方参照といいます。

class TESTB;

class TESTA{
  
  //J 前方参照が無い場合、TESTBクラスが定義前なのでエラー
  TESTB b_ob;

};
class TESTB{


};


一覧へ


■10. プリプロセッサ

 ・JAVA言語では、プリプロセッサという概念はありません
  基本的には、import定義より対応する。

【プリプロセッサ】
・プリプロセッサとは、ソースコードをコンパイル前にソースコードに処理をするプログラムのことです。
 例:ヘッダーファイルの読込、マクロ展開、定数の置き換えなど

一覧へ


■11. ガーベッジコレクション(メモリリーク)

 ・JAVA言語では、ガーベッジコレクションと言われる不要データの自動解放機能があります。
  これにより、プログラマが明示的に解放処理を追加しなくて済むので、負荷が軽減されています
  ⇒C/C++では、解放処理(delete)を必ず定義しなければいけません。
   解放漏れが発生すると、メモリリークとなり致命的な障害が発生する場合があります。

一覧へ


■12. インライン関数(inline)について

 ・JAVA言語では、インライン関数はありません

【インライン関数】
・インライン関数とは、関数呼び出しにかかるオーバヘッド(負荷)を軽減し、実行速度を高めます。

一覧へ


■13. スコープ演算子について


 ・JAVA言語では、スコープ演算子(::)はありません
  メソッド定義はクラス内で定義する為、必要ありません。

一覧へ

 
    
A8ネット
 ・人気度:★★★★★
 ・言わずと知れた人気ASP

 
楽天市場
 ・人気度:★★★★★
 ・誰でも安心、楽天市場で

タワーレコード
 ・人気度:★★★★☆
 ・CD/DVDならタワレコで

 
■ネット証券関連おすすめ
イー・トレード証券
 ・人気度:★★★★★
 ・初心者はこちらから

マネックス証券
 ・人気度:★★★★★
 ・中級者ならこちらから






Copyright(C)2007 得@スキルアップ塾.comAll right reserved.