やす流 Top


Java言語


アンドロイドのアプリを開発しようとするとJava言語は必須だと考える。

オブジェクト指向なので、C++言語と同じかなと勝手に思っているが、 どうなのか、C++と比較しながら、まとめていきたい。

javaソースコード.java → javaコンパイラ(javac) →  バイトコード.class → java仮想マシン(JVM。JavaSE,JavaEE,JavaME) → プログラム実行

関数の引数に、値渡し/参照渡しの指定ができない。 プリミティブ型=値渡し。それ以外は参照渡し。指定はできない!
ポインタは使えない。メモリリークとは無縁。
プリプロセッサがない。

No.  項目 内容 備考
予約語 Java言語の予約語
予約語 意味
abstract クラスやメソッドが実装されていないことを宣言する。
byte,double,char,boolean,
float,long,short,void
データ型
break,continue,do,case,
default,else,if,for,return,switch,while
制御文関連
volatile ボラタイル。コンパイラの最適化の制御
import コンパイラが名前解決するときに使う。
import java.io.*;     ← java.ioパッケージ配下の全クラスの意味
catch,finally,throw,throws,try 例外処理関連
instanceof インスタンスが該当クラスのインスタンスとなっているかを調べる
class,extends,implements クラス関連
native 他の言語で書かれたメソッドを表す
new 新しいインスタンスの作成
package パッケージの宣言。いくつかのファイルをまとめて扱う。
ファイルの先頭に、package yas
private,protected,public アクセス制御。つけなかった場合、同じパッケージ内。
static グローバル変数が作れないため、必須。
final 変更できないことを示す
strictfp 浮動小数点の取扱制御。javaはCPUに依存しない計算を保証
super スーパークラスのメンバーの呼び出し
synchronized マルチスレッド制御
 
変数
C++言語と違うのは
・サイズがCPU環境で変わらないということ。
・初期化していないと、プリミティブ型の場合、0、flaseとなる。
unsignedがない!
タイプ 型名 サイズ 備考
整数型 byte 8  
short 16  
int 32  
long 64  
浮動小数点型 float 32 有効桁数7
double 64 有効桁数16
文字型 char 16 unicodeのため
論理型 boolean 8  
演算子 instanceof演算子・・・オブジェクトの型を判定する演算子  
制御文 ・if(A = B)がエラーとなる。
【拡張for文】
for(int b : a){ System.out.println(b)}   ← 1000分のintを表示
配列 ・int a[] = new int[1000];
・a.length  ←配列の要素数

 
クラス 1クラス=1ファイル

class YasBase{
  private static int num;
  void YasBase(){};    ←コンストラクタ
  void YasBase(int a){};    ←引数付きコンストラクタ (オーバーロード)
  int Calc(int a);
}
 
継承 class Yas extends YasBase{
  void Disp();
}
 
インターフェース
(C++の多重継承)
C++の抽象クラスとは違う。

interface YasInterFace{
    int CalcMethod1;
    int CalcMethod2(int a);
}
class Yas implements YasInterFace{int CalcMethod1(){・・・};int CalcMethod2(int a){・・・};}
 
オーバーライド C++言語と基本は同じ。  
10 コメント C++言語の「//」、「/*」~「*/」
【JavaDoc】←ドキュメントツール
/**」~「*/」  ※タグ・・・「@param」「@return」「@author」「@throw」
 
11 アノテーション @から始まる注釈。
「@Override」は、次のメソッドはオーバーライドであるという注釈。 これに反するとコンパイラでエラーとなる。