基本型


  特殊な boolean 型




C では、 条件の書けるところに数値が使用できますが、Java ではエラーになります

C
  

double a = 1;

if ( a ) {
	printf( "double でも OK" );
}
  

Java
  

double a = 1;

if ( a ) {
	System.out.println("");
}
--------------------------------------------------------
互換性のない型
検出値  : double
期待値  : boolean
	if ( a ) {
  

これは、データ型の管理が厳密である事を示しますが、Java をやり始めた頃は少し面食らいます。
しかし、C では以下のようなミスを良く犯すのですが Java ではエラーになるので問題を事前回避できます

C
  

int a = 1;

// 正しい
if ( a == 1 ) {
	printf( "a と 1 が等しい\n" );
}

// 間違い
if ( a = 1 ) {
	printf( "左辺値 a が 0 で無い\n" );
}
  

Java
  

int a = 1;

// 正しい
if ( a == 1 ) {
	System.out.println("a と 1 が等しい");
}

// エラー
if ( a = 1 ) {
	System.out.println("");
}
--------------------------------------------------------
互換性のない型
検出値  : int
期待値  : boolean
if ( a = 1 ) {
  

結局のところ、Java では条件を書くところは、boolean 型しか認めないという事で、条件式の結果は boolean 型で
あるという事が言えます。さらに、事実として他の整数型から代入する事も、他の整数型に代入する事も、キャストする
事もできません。

C から考えると特殊な位置づけです

以下の4つの代入演算は全てエラーとなります

  

int a = 1;
boolean flg = true;

a = flg;
flg = a;
a = (int)flg;
flg = (boolean)a;
  

boolean 型にセットできるのは true か false のみです







  変数は定義時に初期化する




プログラミングとして考えた場合当たり前の事ですが、C 言語ではコンパイラに特に強制されない
のと、定義時に{}プロック内で初期化してしまうとスタックが使用されないなど、初期化が必要に
なるまで記述する事が無い( 記述を忘れる )という悪習があります

正しい
  

int a = 1;

if ( a == 1 ) {
	System.out.println("a は 1 に等しい");
}
  

エラー
  

int a;

if ( a == 1 ) {
	System.out.println("a は 1 に等しい");
}
--------------------------------------------------------
変数 a は初期化されていない可能性があります。
	if ( a == 1 ) {
  

  配列はオブジェクト

まったく C と違うので、Java を始めた時はたとえ使えてもしばらく理解できないと思います。
C での配列はしょせんアドレス計算ですが、Java では全く別物です

オブジェクトなので、初期値は null を使用します

  

int [] a = null;

if ( a == null ) {
	System.out.println("a は無効です");
}

int i = 0;

// 実際のメモリを割り付けます
a = new int[10];
for( i = 0; i < 10; i++ ) {
	// 配列の内容は 0 で初期化されています
	System.out.println(a[i]);
}
  

オブジェクトである為、配列には length というプロパティが存在します

  

int [] a = {1,2,3};

// 実行結果は 3 です
System.out.println(a.length);
  

以下は、オブジェクトとして参照の代入を行ったものです
( a と b は同じものです )

  

int [] a = {1,2,3};

int [] b = a;

// a[1] も 100 になります
b[1] = 100;

System.out.println(a[1]);
System.out.println(b[1]);

if ( a == b ) {
	System.out.println("同一オブジェクトです");
}
  

以下は clone メソッドを使用してオブジェクトをコピーしています

  

int [] a = {1,2,3};

int [] b = a.clone();

b[1] = 100;

System.out.println(a[1]);	// 2
System.out.println(b[1]);	// 100

if ( a != b ) {
	System.out.println("それぞれ別のオブジェクトです");
}
  




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[javaSwing]
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
24/04/20 18:30:32
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube