【Console Application】基本文法 30【学習記】

独学でやってきたけど学習要綱にある項目で「なんだろこれ?」を調べる話🤔

Q.
なんか凄い端折って進んでない?
A.
そりゃだって「気になる」やつしか取り上げてないもん🤪

→クラスフィールドとはメンバ変数やプロパティの事
→ companion object は static の無い Kotlin で似た様な事を実現する為のオブジェクト指定方法
→抽象クラスは仕様は有るけど中身が作られてない「後実装」型の、宣言専用クラスの書式
 → interface 同様、継承クラス側で要実装という仕掛けで必須部分実装を強要できるので引数・返り値の策定がしやすい

#学習記 #Kotlin
#class #field #companion_object



独学だと使わないので学ばない物も有る

それじゃ手元の基礎学の「これなんだ?」を始めようかな🤤
勿論、学習要綱を載せる事はできないけど項目だけ抜き出したらイケるかなって🤪
(なんか似た様な事を以前にも…

try もそうだけど個人開発だと使わない物ってやっぱり出てくるのよね🤔
そうすると基礎でありながらも用語として出てくると「なんだろこれ?」ってまぁなるわけで…😞
そういうのを塞いで行こうって試み🤤


【 class 】フィールド

Kotlin 教材なので Kotlin の、クラスのとこに書かれてるのでクラスの用語と思われる「フィールド」なる項目。
名前からすると「クラスメンバー変数」や「クラスプロパティ」かな?と思うけどはて?🙄

プロパティとフィールド
https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/properties.html

………🤔
Java のクラスの用語っぽい…?

クラス、メソッド、フィールドとは
https://www.javadrive.jp/start/const/index2.html

………🤔
なんだ、やっぱりクラスメンバー変数の事だわ🤤
Java の用語と同じにしてあるみたい(そりゃそうだ
なんの事はない、用語が違うだけ🙄


【 class 】 companion object

語から想像はできそうだけど何をするものなのかが良くわからないのがこれcompanion object🙄

Kotlinのcompanion objectとは
https://qiita.com/tkhs0604/items/261e94a42b7097dfd204

Singleton の扱いが Java や Kotlin では良くわからないから学習者が読んで理解できる内容の記事ではないなこれは…😞
なんでこう、知ってて当然って感じで語を使って、調べてる人から不必要に時間を奪うのかなっていつも思う🙄

コンパニオンオブジェクトでクラスに静的メソッドを追加する (companion object)
https://maku77.github.io/kotlin/basic/companion-object.html

こっちのが判りやすい🤤
Kotlin の static を調べてる時にそういえば出てきてたなってこの記事見て思い出した🤪
あれは確か VariableTypeAnalyze のエイリアス VTA を作ろうとしてた時だった筈…
あの時は別に static じゃなくても VTA にインスタンス作っちゃったら動作させられたから結局 companion object は使わなかったと記憶してる🤤
Kotlin の思想からするとこの companion object も、あんまり使ってほしくないのかなって気がするけど static スキーはどの言語にも一定数居るのでしょうがない🙄
いや、 static というか private とか protected スキー?まぁいいや🤪


【 class 】抽象クラス

これはただの復習🤤
やった筈だけどどんなだったっけってなってるのでまた調べる事に🤪
確か、枠だけ宣言するみたいなやつだった気が…🤔
interface の概念を class にしたようなやつ…?とりあえず引いてみようね🤤

[Kotlin]抽象クラスとインターフェイスの定義方法
https://pouhon.net/kotlin-interface/3357/

正解〜🤤
ヘッダで定義だけ宣言する系 C 言語から来た人はきっと好きな抽象クラス🤪


【例外】 try

Kotlin は基本的に Java と同じ例外処理と考えて良かった。 OCObjective-C も OC++ でもだいたい同じ🤤
でも Swift だけ様子がちょっと違っていた。
前回やった例外を組み込んだものは一先ず動けば良くて特に調べなかったけど、今は学習要綱に出てきているので前回よりはまじめに調べないとならない🤪

[Swift] Swiftのエラー処理についてざっくりとまとめてみた
https://dev.classmethod.jp/articles/about-error-handling/

Swift では try を書く場合、 do で囲う必要が有るけど、この do 、他の言語だと while とかの系譜で使われる制御構造の予約語なのよね🙄ややこしい
他言語の後置型反復子のつもりで do を書くと挙動が全く異なるのでハマる😞
こういう使い回しでオレオレな言語仕様キライ😞
しかし↑の記事見る限りでは try! や try? であれば do は要らないみたいで catch が要る場合の try で do が要るって事みたい。
そこはなんか他の try-catch より柔軟な気はするかな🤔
でも do って語を使うのはやっぱり絶許では…😞


他の項目

残ってるのはコンソール入力、ファイルの入出力、データベース接続、 Null 安全かな。
Null 安全は Optional 型の話とほぼ等価で、多分沢山使って経験積む以外は使い方だけ見る、しか学習が無い気がする🙄
前回やった型判別の Map<String,Any> みたいなのを使う場合や jsx 開発で多用してる null を返す機能を作る場合に必要な概念かな🤤
JSJavaScript よりも null の扱いが面倒で形式張った記述が要るので都度確認しながらコーディングしないとならないと感じた🤔
多分それは「型宣言式」言語の限界なんだと思う😞
型推測が最強というわけではないけど開発難度は型宣言式の方が「手間が増える」という点では高いなって評価かな🤔


次回は

………課題?いやいやダメダメ🤪
コンソールは済んでるからファイル入出力かな🤤
その後 DB やって、課題は後から纏めてやろうね(ほんとはダメ

この記事が気に入ったらサポートをしてみませんか?