2019年05月25日

演算の対象となる値を「オペランド(operand)」と言い演算の種類を表すものを「演算子(operator)」/classはインスタンスを作る機能を持ったオブジェクトでそれ自体の変数(フィールド)や関数(メソッド)を持てる

それでわかったことがある。

・変数の宣言時に、データ型を省略することはできない。
これは判る。

・int 型と double 型の変数の演算結果は、double 型になる。
これはちょっと「なぜ?」となって調べた。
どうやら整数と整数に対する演算を行った場合は得られる結果も整数となるが、演算子の対象の値がどちらか一つでも浮動小数点数の場合には演算の結果得られる値も浮動小数点数となる算術演算子 - 演算子 - Java入門)らしい。

リテラルは値のことhttps://qiita.com/koukonko/items/3331f6abe8db18d55bcc)ってのもわかった。リテラル「10」はint型だし、「3.33」はdouble型だ。


のサイトが判りやすい。byte 型→8ビット整数(-128〜127)、short 型→16ビット整数(-32768〜32767)、int 型→32ビット整数(-2147483648〜2147483647)、long 型→64ビット整数(-9223372036854775808〜9223372036854775807)ってのがわかる。
少数は、float 型→32ビット(単精度)実数,約6桁精度,範囲 ±3.40282×1038、double 型→64ビット(倍精度)実数,約15桁精度,範囲 ±1.79769×10308か。

・3E2というのは300.0。のことで、double型の数値リテラル。
これがどういうことかというと、浮動小数点リテラルの末尾に「E」を書き、さらに整数値を書くと、その整数値が「10の乗数」になるらしい「E」とは : JavaA2Z)から。だから3.0を10の2乗倍したら、300.0ってこと。
次は、

class devine {
public statcic void main(String[] args) {
int sum = 0;
fot(int i = 1; i < 10; i++){
sum += 0.1;
}
System.out.println(sum == 1);
}
}

の実行結果について。
このコードの実行結果…まず、"+="という演算子がよくわからん。
複合代入演算子(https://wa3.i-3-i.info/word13674.html)というらしいが。
つまり、int型の変数sumは、for文で整数の1から10までを足してるから、これでまず55。
こいつに0.1を足すと、55.1で、sumには55.1が代入されるわな。
そんで最後のプリントラインメソッド、についてはここが詳しくて。


== 演算子(比較演算子)は、exp1 が exp2 と等しければ true(真)、さもなくば false(偽) を返すhttp://www.tohoho-web.com/js/operator.htm#eq
らしいんで、一致しないから答えはfalseだな。

今日はこれぐらいでいいや。
「staticはメソッドのこと?staticメソッドって?」っていう疑問がJavaのデータ型を読んで湧いてきたから、また調べよう。
posted by DJしかばね at 13:04 | Comment(0) | Java学習 | このブログの読者になる | 更新情報をチェックする

2019年05月19日

親クラス(スーパークラス)を継承したい時はextends〜を使う/属性≒アトリビュートやプロパティ、オブジェクト≒インスタンス、 メソッド≒関数やファンクション

一カ月ぐらいJavaの勉強してない。
ちょっと気合入れてやるか〜って気分になった。
で、過去問を解くことに。

・Javaアプリケーションには、mainメソッドが必要である。
・Javaのクラスファイルは、JVM(Java Virtual Machine)上で実行される。
・Javaでは、ガベージコレクション機能によって、メモリの解放が自動的に行われる。
・コメント「//」はそれ以降で改行までをコメントにする場合、また「/* 〜*/」は複数行をコメントにする場合に使用する。

上記はJavaの事実として覚えておこう。
ガベージコレクション、って何?って感じだけど…調べる気力がない。
ガレージ、じゃなくてガベージなのか、覚えにくいな。

ガレージが欲しいよほんと、所ジョージ的なよ。


で紹介されてる豪邸でなくてもいい、狭くてもいいから好きな物いっぱいおけるガレージ。
理想は、

TENDRE - SIGN

のPV出てきてるような、中庭とプールがあって、日がいっぱい差し込んでくる感じね。
ちょっとセキュリティ的に弱そうではあるが。
Tevaのサンダルも出てきてる、歩きやすそうだな。

んで次の問題は〜穴埋め的な感じだった。
例えば、

class Summertune extends Hitomitoi {}

っていうコード、SummertuneクラスはHitomitoiクラスを継承して、Summertuneクラスをサブクラス(子クラス)、Hitomitoiクラスをスーパークラス(親クラス)というらしい。


も読んでおくかな。
そんで継承によってコードの再利用ができるんだと。
クラス名はこの動画、

Dorian / summer rich feat. hitomitoi

を観て適当に付けた。いい曲だ〜。
夏が近づくとこういうの聴きたくなる。

山下達郎 - RIDE ON TIMEに収録されている「いつか」って曲、いい曲だな。
RIDE ON RIMEよりいいかもしれない。

class Yamatatsu {
String name;
int id;
void itsuka() {}
}

こんな風にYamatatsuクラスが定義されている場合、このクラスはメンバ変数name、idのようにオブジェクトを特徴付ける属性と、itsukaメソッドのようにオブジェクトの機能を表す操作をもっている。また、属性と操作をまとめることをカプセル化という

属性・操作についてはこのサイトが判りやすそうではある。

カプセル化により、属性を保護することが可能になる。これを情報隠蔽という。クラスを基に、具体的な情報を当てはめて、オブジェクトを生成することをインスタンス化という。その際には通常newキーワードが使われる

でたよ、インスタンス。
何か覚えにくいんだよなぁ、インスタンスって。
でも、


だと、インスタンス≒オブジェクトみたいに説明しているっぽいし。インスタンス化してオブジェクト作る、って覚えとくか。
そんでインスタンスって言われたら、オブジェクトのことだって考えるか。
この記事を読むと、クラスを使うためにインスタンス化してるっぽいが…クラスを使うにはインスタンス化しないといけない?のか…ちょっと裏を取るか。
属性はわかった。「String型とかint型とかの後に来る変数」「Stringとかintとかの型で性質を指定された変数」みたいなもんか。

コンストラクタはクラス名と同じ名前で、インスタンスを初期化…じゃあクラスを使う前に、インスタンス化とコンストラクタが必要ってことか?
"特別なメソッド”ってサイトに書いてるが、コンストラクタはメソッドと同じで機能の操作的なことやってんのか。

あっでも、


に「コンストラクタは、クラス名と同じ名前を持つメソッドのことで、インスタンス化したときに一度だけ実行されます。」って書いてるから、認識としてはそんなに間違ってないか。

ふぅ〜かなり頭使ったから、今日はこの辺にしとくか( ´Д`)=3 
posted by DJしかばね at 13:17 | Comment(0) | Java学習 | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。