ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2017年8月19日土曜日

オブジェクト指向

 オブジェクトはその状態を表す「属性」とオブジェクトに対する「操作」をもつことができる。

 久しぶりにJavaプログラミング能力認定試験の三級をやってみたらすっかり上記の「属性」のことを忘れてた。

2017年8月17日木曜日

== 演算子

 String のコンストラクタを使って作成したものはリテラルとは違うオブジェクトとして作成されるので比較の結果は false となる。

 これだけだと意味がなんとなくしかわからんな。
 ここできちんと説明ができるようになるのはいつになるやら。

2017年8月16日水曜日

instanceof 演算子

 継承関係があれば true を返す。
 これはインタフェースを実装した場合も含む。

2017年8月15日火曜日

Java のプログラム

 最初に実行を開始した main メソッド以外に何らかのスレッドが実行されている間は終了しない。

 お行儀が良いので安心。

2017年8月14日月曜日

強制的に終了させるのはよろしくない

 実行中のスレッドに対して強制的に実行の終了や一時的な停止をすることは不適切な動作を招く可能性があるため推奨されていない。
 その推奨されていないメソッドには destroy, resume, stop, suspend がある。

 ごもっとも。

2017年8月13日日曜日

static メソッド

 static メソッドからインスタンス変数へ直接アクセスはできない。
 static メソッドはオブジェクトを作成しなくても実行は出来るがオブジェクトを作成しないとインスタンス変数の領域は確保されないので存在しない領域へのアクセスは出来ない。
 またインスタンス変数は個々のオブジェクトにそれぞれ領域が割り当てられるためインスタンス変数名だけではどのオブジェクトのインスタンス変数なのか特定できない。
 そのためコンパイルエラーとなる。

 こう書かれているのを読むとわかったような気になるが繰り返して覚えてしまおう。

 たぶん static メソッドというのがもやもやっとしているからわからないのだろう。
 ここを読んでおこう。
http://nobuo-create.net/java-beginner-21/

 static とは「静的」という意味。

2017年8月12日土曜日

無限ループ

 for ループから抜けることがないためループの次に制御が移ることがないためコンパイルエラーとなる。

 コンパイルエラーにならないものとの違いがよくわからない。

コンストラクタ

 オーバーライドによりサブクラスから手を加えられない。
 サブクラスのコンストラクタから super キーワードを使ってスーパークラスの任意のコンストラクタを呼べる。

 なんかちょっと前にやったような気がするので調べてみたら七月二十二日にやっていた。
 同じミスをしたということはまだ理解していないってことだな。

 同様な問題が出ていたということはまた出そうだな。

2017年8月9日水曜日

Javaプログラミング 能力認定試験 2級過去問題集

 第三十六回の結果は五十八点。
 ビット演算子を知っていればギリギリ合格ライン。
 がっくりとくる点数ではないけれどもう少し欲しいところ。

 三級の試験が来月に控えていることを考えるとそろそろ三級の過去問題集を復習する頃合いだな。

2017年8月8日火曜日

インターフェイス

 インタフェースはインスタンスを new で生成できない。
 インターフェイスは implements キーワードで実装。

 やり取りをする出入り口だから概要しか定義されていないと考えれば良さそうだな。

2017年8月7日月曜日

ビット演算子

https://www.javadrive.jp/start/ope/index8.html

 ^ を論理積と勘違いして間違えた。
 これは排他的論理和なので覚えてしまおう。
 論理積は &
 論理和は |
 ビット反転は ~

 ビットシフトが面白い表記をしていたので合わせて覚えてしまおう。
 左シフトは <<
 右シフトは >> と >>>
 右シフトに二種類あるのは符号ありか符号なしかの違い。
https://www.javadrive.jp/start/ope/index9.html

 ローテートはないんだろうか。

2017年8月6日日曜日

例外への対処は明記すること

 あるメソッドで発生した例外は catch で対処するか throws を用いて自分自身を呼び出したメソッドへ伝えるかを決定する必要がある。
 これを明記しないとコンパイルエラーとなる。
 ただし RuntimeException とそのサブクラスの例外は発生箇所が普遍的なので記述がなくてもコンパイルエラーにならない。

 だそうだ。
 例外をほかっておくといいことはないからな。

2017年8月5日土曜日

this キーワード

 自分自身のオブジェクトを表す this キーワードはコンストラクタだけではなくメソッド内でも使用できるが static メソッドでは使用できない。
 static メソッドはオブジェクトなしでも動作することができるので this キーワードがオブジェクトを特定できないから。

2017年8月4日金曜日

package 宣言

 package 宣言より前にはコメントと空白行以外は書けない。

 肝心な package については調べていない。

2017年8月3日木曜日

総称型

 いまはジェネリクスというらしい。

http://qiita.com/pebblip/items/1206f866980f2ff91e77
 なにがなんだか。
 何度か読み返してみたけれどもレベルが高くて何を言っているのかわからない。

2017年8月2日水曜日

型変換のキャスト

 サブクラス型のオブジェクトの参照をスーパークラス型の変数に代入するときにはキャストは不要。
 スーパークラス型のオブジェクトの参照をサブクラス型の変数に代入するときにはキャストは必要。

 サブクラスはスーパークラスから継承したものだからスーパークラス型を知っている。
 逆にスーパークラスはサブクラスの詳細を知らないからキャストが必要となる。
 ということかな。

2017年8月1日火曜日

コンストラクタ

https://www.javadrive.jp/start/extends/index4.html
クラスは基本的に「java.lang.Object」のサブクラスとなっています。その為、全てのクラスはjava.lang.Objectのコンストラクタが必ず呼ばれています。

 なるほど。
 いきなりクラスが出来ているわけではなかったのか。
 あとは大元のクラスからコンストラクタが呼ばれているのは知らなかった。
 確かに説明をしてもらえれば当たり前のことと気が付かされた。

 コンストラクタを呼び出す super() はコンストラクタの先頭でのみ使えるということを調べようとしてたのにそれとは別に二つのことを知ることが出来た。

2017年7月30日日曜日

FileNotFoundException

 IO Exception のサブクラス。
 どうもごっちゃになっている。
 くくりを考えれば分かるか。

2017年7月29日土曜日

TreeSet 型のインスタンス

 add メソッドで追加。
 すでに等しい値がある場合には追加されない。
 更新されるとばかり思っていたから驚いた。
 更新する方法が別途あるんだろうな。

 TreeSet 型のインスタンスから取り出される値は昇順である。
 勝手にソートされてるんだな。

2017年7月28日金曜日

クラス

 new キーワードでインスタンスを生成する必要がある。

 これは分かる。
 三級レベルならなんとか追っかけることができるんだがな。

 二級レベルになると実践が必要だな。

MELSECNET/HのリモートI/O局経由のMODBUS(R)通信について

http://fa-faq.mitsubishielectric.co.jp/faq/show/13661  別ネットワークの先にぶら下げるってどういうことだろう。