唐突ですが、Javaの勉強をする羽目になりました。
といっても、プログラム関係の業務をするわけでもなく本当なんでかそんな羽目になっただけなのですけれども。まったくもって自分と畑違い(だけれどもPHP覗いたりじわっとじわっと遠い遠い土を触ったことはあるみたいな微妙な位置)を勉強するので、もーどうしろって話なんですよね!
どうやればいいのか全く分からないのにどうしろと。
とはいえ、そんなこと言っていても勉強できるような環境ではありません。「スッキリわかるJava入門 第3版」という本を利用することにしました。
想定としては週末に二時間ちょっと勉強していくつもりです。緊急性のある勉強ではなく流れでやるはめになったのでモチベーションも意欲も難しい故に、とりあえず一冊通しでやっていく、という流れにしました。
覚えきれなくても取り敢えず次に進む。一冊やり切ってからもう一度覚え直す。という形にします。私は結構一個ずつ丁寧にやりすぎて頓挫するので、とりあえず一冊通してからもう一冊、という形にしようかなと。
さて、せっかくなので監視してもらえる環境を利用しましょう。というわけでブログです。まだサイト公開前ですが場所はあるので使わない手はないです。二月から、ということで昨日(2023/02/05)二時間程度やりました。続けられるかな!
そしてただやったよ報告も何なので、簡単にメモしたこととか記載しますね。テキストそのまま映すのは普通に無断転載になるので、やりながらわかったことで汎用的なこととか、あとはなにこれって別途調べたことを書いています。
そもそもJavaとはなんぞよ、で、学びやすいよ~汎用性あるよ~とか色々説明あったんですが、ほかのプログラムとの違いはわからないしこういうの推しポイントばかり書くでしょ普通と思うのでそのへんは流しています。大規模開発に向いているとかオブジェクト指向言われても、そもそもオブジェクト指向ってなんぞや、の話なんですけどね。なんかこう、さっくり見た範囲だと、オブジェクトごとで動くから色んな人で別オブジェクト作って手分けできる的なやつなのかのかな……とかぼんやり思いましたが、そんなバラバラに動いたらひとつのプログラムとして動かすときの全体の指揮はどうなるの~? しました。わからん。なにもかもわからん。まあこれはおいおいわかるでしょう、多分。とぶんなげてろくに調べていません。読み切った後わからなかったら未来の私が調べるでしょう。頑張って。
あ、ソフトはEclipse IDEってものを使っています。このJava、緊急性はないんですが実は過去にも勉強するか……とぼんやり手を出そうとして挫折しており、過去の私がインストールしていました偉いよ私。今の私はどうすればこのソフトが正解かわかりません。とりあえず使えればいいんだ(丸投げ)。
はてさて、とりあえず出てきたコードを見て読み方がわからないしました。ので調べました。どうでもいいですが多分これとりあえず言いまくりますね。もーなにもかもわからん。なにもかもとりあえずで進んでいきます。
・println プリントライン(お前イをどこに落としてきた)
・args アーグス(「引数」という意味の「arguments」の略。お前ひきすうって読むの!? 引用って打ち間違えるレベルのポンコツですよ、いんすうかと思った)
・static スタティック(これは素直にいける。静的って打って性的って変換するパソコンくん止めて)
なんかもう、Javaのよくわからないな~ってところはソースコード作ってコンパイルして実行して、ってあたりで、なんでそんな三段階踏むの!? ってあたりですね。ソースコード作ったらそのまま実行で良いじゃん。なんでコンパイルするのさ。拡張子が二種類とか面倒オブ面倒では。.javaと.classとかなんでそんな拡張子増やすな。
一応なんでこう手間があるのかって説明はされています。ソースコードはあくまで人間がわかる言語なんですね。それをコンパイルすることによって機械が実行しやすいバイトコード(1と0で形成されているもの)が詰まったクラスファイルに変換している、ということで、この関係で人間が読み書き出来るJava拡張子、機械に渡すためのclass拡張子になると。ソースファイルがクラスファイルになる必要がある、となんとなーくふわーっと理解します。日本語を英語に翻訳してくれているみたいな感じなのね。翻訳してくれる子がコンパイラっていうのね。お前が翻訳者……かと思ったらこいつは翻訳者ではない。なんでや。コンパイラのもとはcompile。コンパイラくんがコンパイルしてくれるみたいな言い方なのでcompileでざっくり理解していいんだろうな何ですが、これ、ひとつにまとめるとか編集するなんですよ。お前編集者か。翻訳者はそのまま翻訳者という意味のインタプリンタ(interpreter)くんがいます。この子がバイトコードを変換するんですって。へー。インタプリンタくんが持っている仕組みをJava Virtual Machineというらしく、これで変換して、機械語にするらしい。どうでもいいけどVtuberにハマったせいで謎にVirtualに反応します。そんな言葉どこでも使う、反応するな。
……っていうか、01で書かれた奴が機械語だと思ったんだけどお前機械語じゃなくてバイトコードってジャンルなの!? 別名じゃなくて!?
どういうことだよって調べたら、なんかこう、私の理解では「多分バイトコードって標準語だけれど、機械さんはその標準語読めなくて、標準語を方言に変更したらわかるのかな……」と謎な理解しました。機械ごとに機械語が違うからインタプリンタくんがいるんですって。インタプリンタくんが翻訳しやすいようにまとめるのがコンパイラくんの仕事で、それをみながら機械語に翻訳……だから汎用性が高いって感じなわけ??? でもオブジェクト指向のことはわかりませんね。なんだよお前ら。
ちなみにマシン語って本では書かれているんですが、なんか変換君が真慎吾とかいって謎の人物登場させたがるので私は機械語と入力したがっていますね……。いや覚えてもらえればいいんだけど……。これから使うなら覚えさせるべきな気もするけど……。
Java君はブロック構造だよ~とか言われてもピンとこない。お前がクラスでお前がメソッドな、となんとなく把握はしたが私のポンコツ脳みそが覚えられるかな! 名称の付け方ルールとか教えてくれるのはありがたいし細かい定義は本当美しい文を描くのに必要だから助かるけれど、暗記よりも記述してほしいですね。怠惰。脳みそを使え。
コメントの書き方とかはこう、見覚えがある~~~しています。だいたいHTMLのせいです。手打ちでサイトを作るいにしえの民。と言いたいところですが現在制作中のサイトで絶賛進行形で手打ちしているからですねえ! 美しいコードが書きたぁい! PHPにしなきゃいけなくなりそうで頭抱えています。話はそこじゃないですねずれました。はい。
基本の文章が「public static void main( String[]args)」でめちゃくちゃ頻出する、はわかったんですが覚えられる気がしませんねえ! 定型文、一個ずつ意味を説明してほしい。publicは公共とか思うんだけどなんでここでお前使われているんだ。知らん。なんかこれが基本だよ! みたいな意味なんですかね。voidって空っぽとか役に立たないになっているんですが、なんで空っぽが入るの。わからん。静的な空っぽのクラスなの。Stringは文字列。なんか文字列を引数……入力しろってこと? はーわからんわからん。現段階ではおまじないです。読み切ってわかるのか? そこでつっかえるなって感じもするのでわからない疑惑もありますね。はーーーさっぱりさっぱり。
なんかねえ、予約語とかそのへんは吉里吉里2に手を出したときのことを思い出しますね。わかりますか? 昔あったんですよゲーム作るのに便利なフリーソフトが……。私はNスクで結構頑張ってシステム作っていたんですが新しいパソコンで使えなくなって崩れ落ちた過去があります。吉里吉里ちょっと手を出したけど馴染まなくて……。また話がずれている。
は~~~~! データ型系はねぇマジでお前なんでそんな種類多いんだよってなって嫌いなんですよ!! 整数少数でわけるな、数字は数字で良いじゃないか! booleanって単語を見るとめちゃくちゃBlender思い出すんですけど、Blenderの挙動と真偽値の組み合わせが理解できない。お前は何でそこに居るんだ。あとcharがめちゃくちゃ見おぼえあるんですよね。さっきのNスクだとかそっちの時代に。でも何に使ったかわからないし勘違いしているかもしれないです。なんかお前……以前あったことが……と謎のナンパ手口になりかけていますがナンパできていません。あとねーーーー凄く嫌いだなーって思うのが、さっきの「public static void main( String[]args)」で使っているのにデータ型宣言でもStringくるあたり。お前ら同じで良いの!? 混乱するんだよも~~~~~~~。
charは’ ‘引用符、Stringは” “二重引用符なのは嫌がらせだと思う。分けるな。混乱する。
いやでも多分、分けたほうがミスが減りやすいとエラーが起きることででかい爆弾を無くすためとか色々あるんだろうな……あるんだろうけれどスライムはきぃぃしちゃうよ……。
とりあえず今回は編纂者と翻訳者で混乱する、インタプリンタって翻訳者っていうよりもプリンタがでてくるし単語覚えられんの気持ちと、データ型どうあがいても覚えられない気持ちと、定型文覚えてねってことばにむりでーーーーーーーす!!! して終わっています。
こんな調子で大丈夫なのか。どうみても大丈夫じゃない。
次回、すすむのかな……とりあえず継続を祈ってください。えいえいおー。
(2023/02/06)