プログラミング

スポンサーリンク
Java

Java | オブジェクト指向:可視性を最小にする

可視性を最小にするとは何か「可視性を最小にする」は、クラス・フィールド・メソッドのアクセス範囲(public / protected / なし / private)を「必要な場所にだけ見えるよう、でき...
Java

Java | オブジェクト指向:defensive copy

defensive copy とは何かdefensive copy(防御的コピー)は「オブジェクトの中身を、外から勝手に壊されないように、防御のためにコピーを取るテクニック」のことです。特に List...
Java

Java | オブジェクト指向:コレクションをフィールドに持つ設計

「コレクションをフィールドに持つ」とは何を意味するかコレクションをフィールドに持つ設計というのは、クラスの中に List や Set、Map などを「メンバー」として抱える設計のことです。例えば、注文...
Java

Java | オブジェクト指向:値オブジェクトの比較

値オブジェクトの「比較」とは何を意味するか値オブジェクトは「中身の値が同じなら、同じものとして扱うクラス」です。お金 1000円、メールアドレス x@example.com、日付 2025-01-01...
Java

Java | オブジェクト指向:Entity の同一性

Entity の「同一性」とは何かEntity の同一性とは「そのオブジェクトが“誰なのか”を決める軸」のことです。もっと噛み砕くと、・中身(名前や住所)が変わっても「同じ人」として扱いたいもの・「同...
Java

Java | オブジェクト指向:DTO と Entity の違い

DTO と Entity は「役割」がまったく違うDTO と Entity は、どっちも「フィールドを持ったクラス」なので見た目が似ていますが、役割がまったく違います。DTO(Data Transfe...
Java

Java | オブジェクト指向:神クラス(God Object)

神クラス(God Object)とは何か神クラス(God Object)は「システムのあらゆることを“何でも知っていて、何でもやろうとする”巨大なクラス」のことです。画面の制御もやる。ビジネスロジック...
Java

Java | オブジェクト指向:クラス肥大化の兆候

クラス肥大化って何がまずいのかクラス肥大化は「とりあえずあれこれ押し込んでいるうちに、そのクラスだけ異様に太ってしまった状態」です。1つのクラスが、画面の制御も、ビジネスロジックも、DB のやりとりも...
Java

Java | オブジェクト指向:不変条件の守り方

不変条件ってそもそも何なのか不変条件(invariant)は「このオブジェクトが“生きている間ずっと”守られていないといけない約束」のことです。例えると、ユーザーのポイントは常に 0 以上注文は明細を...
Java

Java | オブジェクト指向:不正な setter の問題

なぜ「不正な setter」が問題になるのかsetter 自体は悪ではありません。ただ「何でもかんでも public な setter を生やす」「ルールも何もなく値を変えられるようにする」と、オブジ...
Java

Java | オブジェクト指向:リッチドメインモデル

リッチドメインモデルとは何かリッチドメインモデルは「ドメイン(業務)の知識とルールを、“それっぽい名前だけの入れ物”ではなく、クラスの中身としてちゃんと持たせよう」という考え方です。もっとストレートに...
Java

Java | オブジェクト指向:貧血モデルとは

貧血モデルとは何か貧血モデル(Anemic Domain Model)は「フィールド(データ)だけ持っていて、自分の振る舞い(ビジネスロジック)をほとんど持たないオブジェクト」がシステム中にあふれてい...
Java

Java | オブジェクト指向:ドメインモデルの考え方

ドメインモデルとは何かドメインモデルは「扱っている世界(業務)の“概念”を、そのままクラスとして表現したもの」です。給料計算システムなら「社員」「勤怠」「給与」EC サイトなら「商品」「カート」「注文...
Java

Java | オブジェクト指向:switch 文のオブジェクト化

「switch 文のオブジェクト化」とは何か「switch 文のオブジェクト化」は、switch にベタっと書いている「種類ごとの違い」を、それぞれのクラス(オブジェクト)に持たせるように書き換えるこ...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – 条件検索の書き方

条件検索とは何か配列の「条件検索」は、要素の値やプロパティが“指定した条件を満たす”ものを探すことです。ここが重要です:何を返したいかで使うメソッドが変わります。要素そのものが欲しいなら find、位...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – undefined 要素の扱い

undefined 要素とは何か配列の「undefined 要素」は2種類あります。ここが重要です:値が undefined で“入っている要素”と、インデックスはあるのに“実際には値がない空スロット...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – 配列内存在チェック

配列内存在チェックとは何か「配列内存在チェック」は、ある値や条件に合う要素が配列に含まれているかどうかを判定することです。ここが重要です:何を知りたいかで使うメソッドが変わります。「あるかどうかだけ」...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – every

every とは何かevery は「配列の全ての要素が、与えた条件を満たすか」を true/false で返す判定メソッドです。1つでも条件を満たさない要素が見つかった瞬間に false を返し、探索...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – some

some とは何かsome は「配列の中に、条件を満たす要素が“少なくとも1つでもあるか”を true/false で返す」判定メソッドです。見つかった瞬間に検索を止める“短絡評価”を行います。ここが...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – findIndex

findIndex とは何かfindIndex は「配列の中から、条件に一致する“最初の1要素のインデックス(位置)”を返す」検索メソッドです。見つかれば 0 以上の番号、見つからなければ -1 を返...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – find

find とは何かfind は「配列から、条件を満たす“最初の1要素”を返す」検索メソッドです。見つかればその要素、見つからなければ null ではなく undefined を返します。ここが重要です...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – includes

includes とは何かincludes は「配列の中に、指定した値が“存在するかどうか”を true/false で返す」判定メソッドです。位置は返さず、単純に“あるかないか”だけを答えます。ここ...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – lastIndexOf

lastIndexOf とは何かlastIndexOf は「配列の中から、指定した値が“最後に現れる位置(インデックス)”を返す」検索メソッドです。見つかれば 0 以上の番号、見つからなければ -1 ...
JavaScript

JavaScript | 配列・オブジェクト:配列の検索・判定 – indexOf

indexOf とは何かindexOf は「配列の中から、指定した値が最初に現れる位置(インデックス)を返す」検索メソッドです。見つかれば 0 以上の番号、見つからなければ -1 を返します。ここが重...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – 空配列にする方法

空配列にするとは何か「空配列にする」とは、配列からすべての要素を取り除いて要素数を 0 にすることです。ここが重要です:やり方によって“参照を保つ(同じ配列オブジェクトのまま空にする)”場合と、“別の...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – スプレッド構文での追加

スプレッド構文とは何かスプレッド構文 ... は「配列の“中身”をその場で展開する」書き方です。たとえば ] は と同じ意味になり、, 3] は を作ります。ここが重要です:スプレッドは“非破壊”で新...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – 配列の結合(concat)

concat とは何かconcat は「複数の配列や値を“結合して新しい配列”を返す」非破壊メソッドです。元の配列は変更されず、つなげた結果だけが戻り値として返ります。ここが重要です:concat は...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – slice

slice とは何かslice は「配列から“指定した範囲”を切り出して、新しい配列を返す」非破壊メソッドです。元の配列は変更されず、開始位置から終了位置の“手前まで”がコピーされます。ここが重要です...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – splice(追加)

splice(追加)とは何かsplice は「配列の途中に要素を挿入(必要なら置き換えも)できる」メソッドです。書式は array.splice(start, deleteCount, ...inse...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – splice(削除)

splice(削除)とは何かsplice は「配列の途中から指定した数だけ要素を削除する」ためのメソッドです。書式は array.splice(start, deleteCount, ...inser...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – unshift

unshift とは何かunshift は「配列の先頭に要素を追加し、その結果の要素数(length)を返す」メソッドです。ここが重要です:unshift は“破壊的操作”で、元の配列を直接書き換えま...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – shift

shift とは何かshift は「配列の先頭の要素を1つ取り出して、配列から削除する」メソッドです。取り出した要素を返し、配列の長さを1つ減らします。ここが重要です:shift は“破壊的操作”で、...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – pop

pop とは何かpop は「配列の末尾から要素を1つ取り出して、配列から削除する」メソッドです。取り出した要素を返し、配列の長さを1つ減らします。ここが重要です:pop は“破壊的操作”で、元の配列を...
JavaScript

JavaScript | 配列・オブジェクト:配列の追加・削除 – push

push とは何かpush は「配列の末尾に要素を追加し、その結果の要素数を返す」メソッドです。ここが重要です:push は“破壊的操作”です。元の配列を直接書き換えるため、同じ配列を共有している変数...
Java

Java | オブジェクト指向:if 文だらけのコードの問題点

if 文だらけのコードが「なぜツラくなる」のかif 自体は悪ではありません。条件分岐はどの言語にもある基本機能だし、使う場面ももちろんあります。問題になるのは、「if 文がコードのあちこちに増えすぎて...
Java

Java | オブジェクト指向:ポリモーフィズムによる分岐削減

ポリモーフィズムで分岐を減らすとは何か「ポリモーフィズムによる分岐削減」は、if や switch でゴチャゴチャ分岐している処理を、「オブジェクトの“型ごとの振る舞いの違い”に任せてスッキリさせる」...
Java

Java | オブジェクト指向:ファクトリメソッドの概念

ファクトリメソッドとは何かファクトリメソッドは「new の代わりに“生成専用メソッド”を用意して、オブジェクトの作り方をそこに閉じ込める考え方」です。普通は new で直接コンストラクタを呼んでオブジ...
Java

Java | オブジェクト指向:セッターインジェクション

セッターインジェクションとは何かセッターインジェクションは「必要な相手(依存オブジェクト)を、コンストラクタではなく setter メソッドで後から差し込む」という DI(依存性注入)のやり方です。コ...
Java

Java | オブジェクト指向:コンストラクタインジェクション

コンストラクタインジェクションとはコンストラクタインジェクションは「そのクラスが必要とするオブジェクト(依存)を、コンストラクタの引数で受け取る」という設計のやり方です。もっと噛み砕くと、・自分の中で...
Java

Java | オブジェクト指向:DI(依存性注入)の考え方

DI(依存性注入)とは何かDI(Dependency Injection)は「必要な相手(依存先)を、自分で new しないで“外から渡してもらう”考え方」です。もっと噛み砕くと、本来一緒に仕事をする...
Java

Java | オブジェクト指向:インターフェース分離

インターフェース分離とは何かインターフェース分離(Interface Segregation Principle, ISP)は、「インターフェースは、小さくて、はっきりした役割ごとに分けなさい」という...
Java

Java | オブジェクト指向:クラス間の依存を減らす方法

なぜ「クラス間の依存を減らす」のが大事なのかクラス同士がベッタリ依存していると、どこか 1 クラスを少し変えただけで、他のクラスが次々壊れていきます。「このメソッド名を変えたいだけなのに、10 クラス...
Java

Java | オブジェクト指向:パッケージ図

パッケージ図とは何かパッケージ図は「大きな箱同士の関係」を描く図です。クラス図が「クラスとクラスの関係の地図」だとすると、パッケージ図は「パッケージとパッケージの関係の地図」です。Java の com...
Java

Java | オブジェクト指向:UML の読み方

UML とは何か(まず全体像)UML は「図でプログラムを表すための共通ルール」のようなものです。Java のコードを、箱や矢印で表現して「このシステムにはどんなモノがいて、どうつながっているか」を見...
Java

Java | オブジェクト指向:クラス図の基礎

クラス図とは何かクラス図は「オブジェクト指向の設計図」です。クラス(型)の名前、持っているデータ(フィールド)、できること(メソッド)、そしてクラス同士の関係(関連・継承・依存など)を「箱と線」で表し...
Java

Java | オブジェクト指向:関連の多重度

関連の多重度とは何か「関連の多重度」は、「あるクラスと別のクラスが、どれくらいの数で結びついているか」を表す考え方です。UML だと 1, 0..1, *, 0..*, 1..* みたいな表記を見たこ...
Java

Java | オブジェクト指向:集約と関連

集約と関連とは何かオブジェクト指向で「集約」と「関連」は、クラスとクラスの“つながり方”を表す言葉です。ざっくり言うと、関連:ただの「知り合い」関係(A が B を知っている・参照している)集約:ある...
Java

Java | オブジェクト指向:オブジェクトのライフサイクル

オブジェクトのライフサイクルとは「オブジェクトのライフサイクル」は、あるオブジェクトが生まれて(生成されて)、使われて、やがて不要になり、最後に片付けられるまでの一連の流れのことです。Java では、...
Java

Java | オブジェクト指向:単一責任の原則(SRP)

単一責任の原則(SRP)とは単一責任の原則(Single Responsibility Principle, SRP)は「クラスやモジュールは“たった1つの責任(変更理由)だけ”を持つべき」というルー...
Python

Python | データ処理:pandas のインデックス管理

概要(インデックス管理は「行ラベルを設計して、選択・結合・時系列操作を安定化」する)pandasのインデックスは“行のラベル”です。単なる番号ではなく、選択(loc)、結合(join/merge)、並...
Python

Python | データ処理:pandas の join

概要(pandas の join は「インデックスで横に結合」する最短ルート)DataFrame.join は、“インデックス”をキーにして横方向(列を増やす)へ結合します。SQL の JOIN に似...
Python

Python | データ処理:フィルタリング

概要(フィルタリングは「欲しい行だけを、短く正確に抜く」ための基本)pandasのフィルタリングは、条件式でTrue/Falseのマスクを作り、Trueの行だけを抽出するのが基本形です。重要なのは「ブ...
Python

Python | データ処理:欠損値可視化

概要(欠損値可視化は「どこで、どれだけ、どう偏っているか」を一目で掴むための入口)欠損値は“壊れたデータ”ではなく“情報が抜けている状態”です。可視化の目的は、列ごとの欠損量、行方向の偏り(特定期間・...
Python

Python | データ処理:正規化

概要(正規化は「値の範囲を揃えて比較・学習を安定化」する前処理)正規化(Normalization)は、特徴量の値を一定の範囲にスケーリングする処理です。最も基本的な手法は Min–Max 正規化で、...
Python

Python | データ処理:データの標準化

概要(標準化は「平均0・標準偏差1」に揃えて、比較と学習を安定させる)データの標準化(Standardization)は、各特徴量を平均0・標準偏差1に変換する処理です。スケールが揃うことで、距離や勾...
Python

Python | データ処理:行列計算

概要(行列計算は「配列の形をそろえて、演算子と線形代数APIに載せる」)NumPyの行列計算は、2次元配列(ndarray)を使って加算・減算・要素積・行列積・転置・逆行列・行列式・固有値・連立方程式...
Python

Python | データ処理:ベクトル演算

概要(ベクトル演算は「配列同士を一発で計算」できる最短ルート)NumPyのベクトル演算は、forループを使わずに配列(一次元配列=ベクトル)をまとめて計算します。足し算・引き算・要素ごとの掛け算、内積...
Python

Python | データ処理:配列計算の高速化

概要(配列計算の高速化は「Pythonのループを捨て、NumPyのベクトル化へ乗り換える」)配列計算の高速化の要は、NumPy配列(ndarray)に処理を寄せることです。Pythonのforループや...
Python

Python | データ処理:numpy random

概要(numpy randomは「乱数で“試す・検証する・生成する”」ための基礎道具)NumPyの乱数は、データのシミュレーション、重みの初期化、サンプリング、シャッフル、ノイズ付与などに使います。初...
Python

Python | データ処理:グラフの保存

概要(グラフの保存は「見せたい品質で出力」を実現する最後の一歩)matplotlib(pandasのplotの裏側)なら、画像形式や解像度、余白、透明背景などを細かく制御して保存できます。初心者は「f...
Python

Python | データ処理:複数グラフの描画

概要(複数グラフは「比較」と「文脈」を一枚で伝えるための基本スキル)複数グラフの描画は、指標の関係や推移を“並べて”見せることで理解を一気に深めます。pandasとmatplotlibを使えば、サブプ...
Python

Python | データ処理:ヒートマップ

概要(ヒートマップは「2次元の表を色で読み解く」最短ルート)ヒートマップは、2次元の数値テーブルを色の濃淡で表現するグラフです。相関(どの列同士が関係強い?)、クロス集計(店舗×月の売上)、時系列のパ...
Python

Python | データ処理:ヒストグラム

概要(ヒストグラムは「値の分布」を一目でつかむための入口)ヒストグラムは、数値データを区間(ビン)に分け、各区間に何件入ったかを棒で表すグラフです。平均や中央値では見えない「偏り」「裾の重さ」「外れ値...
Python

Python | データ処理:散布図

概要(散布図は「2つの変数の関係」を直感で掴むための基本グラフ)散布図は、横軸にX(説明変数)、縦軸にY(目的変数)を置き、各行を点としてプロットします。点の並びから、正の相関・負の相関・無相関、外れ...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列のコピー方法

配列のコピーとは何か配列のコピーは「元の配列を壊さず、別の配列インスタンスを作る」ことです。ここが重要です:コピーには“浅いコピー”(一次元ぶんだけ独立)と“深いコピー”(入れ子の中身まで独立)があり...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列の初期化方法

配列の初期化とは何か配列の初期化は「配列を作って、最初の中身(要素)や長さを決める」ことです。ここが重要です:JavaScript では複数の初期化方法がありますが、意図と挙動が微妙に違います。最も安...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列と文字列の違い

配列と文字列とは何か配列は「値を順番に並べるための入れ物」、文字列は「文字を順番に並べたテキスト」です。どちらも“順序がある並び”ですが、決定的な違いがあります。ここが重要です:配列は変更可能(要素の...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 多次元配列

多次元配列とは何か多次元配列は「配列の中に配列を入れた構造」です。2次元は行と列、3次元はさらに“層”があるイメージになります。ここが重要です:JavaScriptには専用の多次元型はなく、配列の入れ...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列の変更可能性

配列の変更可能性とは何か配列は「参照型のオブジェクト」で、デフォルトでは中身を自由に変更できます。push・pop・splice・sort などのメソッドは配列を“その場で書き換える”ため、同じ配列を...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列の参照渡し

配列の参照渡しとは何か配列は「参照型」のオブジェクトです。変数が直接値そのものを持つのではなく、“配列がある場所(参照)”を指しています。ここが重要です:代入や関数引数で配列を渡すと、“配列そのもの”...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – length プロパティ

length プロパティとは何かlength プロパティは「配列の要素数」を表す特別な値です。配列に何個の要素が入っているかを常に返してくれます。ここが重要です:length は「最後のインデックス ...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – インデックスの概念

インデックスとは何かインデックスは「配列の中で、要素に付いている番号」です。JavaScript では先頭が 0、次が 1…と続きます。ここが重要です:配列の要素数(length)とインデックスの最大...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列リテラル

配列リテラルとは何か配列リテラルは、角括弧 は数値の配列、 は型が混在した配列になります。ここが重要です:JavaScript の配列はどんな型でも混ぜられ、長さは後から自由に伸び縮みします。new ...
JavaScript

JavaScript | 配列・オブジェクト:配列の基礎 – 配列とは何か

配列とは何か配列は「値を順番に並べて、ひとまとめに扱うための箱」です。1つの変数に複数の値を入れて、後から順番や番号(インデックス)で取り出せます。ここが重要です:JavaScript の配列は“どん...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – システム間データ変換ツール

ねらい:異なるシステムの「項目差・形式差・コード差」をマッピング定義で一括変換する販売管理→会計、EC→WMS、CRM→BIなど、システム間で項目名・コード・日付/数値/通貨/税・改行/文字コードが微...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 仕様チェックツール

ねらい:シートやテーブルの「仕様(列名・型・必須・制約・相互参照)」を一括で検査して、逸脱をすぐに見つける仕様チェックは「定義した通りにデータが作られているか」を機械的に見張る仕組みです。列名のズレ、...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – CSV検証ツール

ねらい:CSVの「ヘッダ・型・必須・重複・範囲・書式」を一括検証して、エラーを“見える化”するCSV取り込み前に“壊れていないか”を機械的にチェックできると事故が激減します。VBAなら“安全読込→ルー...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – データクレンジング一括ツール

ねらい:データの「揺らぎ・欠損・重複・型違い」を一括で正すクレンジングツール実務では「顧客名の表記揺れ」「日付が文字列」「数値が文字列」「重複行」「空白セル」などが頻出します。これを手作業で直すと膨大...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 分析テンプレ(前日比など)

ねらい:売上・アクセスなどの「前日比・前週比・移動平均・異常検知」を一撃で出せる分析テンプレ毎日の数字を「昨日と比べる」「先週同曜日と比べる」「短期の傾向を見る」「急増急減を検知する」までを一括で回せ...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 売上レポートツール

ねらい:売上明細から「整形→集計→ダッシュボード→ピボット→配布」まで一括で自動化する売上レポートは「入口で正す→指標を作る→見える化→配布」を毎回同じ型で回すほど強くなります。VBAなら“配列I/O...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 受発注管理テンプレ

ねらい:受注・発注・在庫・納期・請求の「一連の流れ」を安全に自動化する受発注管理は「受注登録→在庫確保→不足分を発注→納期トラッキング→出荷・売上→請求」の流れを同じ型で回すほど強くなります。VBAな...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 月次処理自動化

ねらい:月次の「集計→締め処理→レポート→ピボット→バックアップ」を一括で自動化する月次処理は、日次の積み重ねを「月区切り」で確実に締めて出力することが命です。VBAなら“期間キーの決定→データ取り込...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 日次処理自動化

ねらい:毎朝の「取り込み→整形→集計→レポート→バックアップ」を“同じ手順”で一括自動化する日次処理は、手順がブレるとすぐに品質が落ちます。VBAなら「入口でデータを正す→集計・出力→配布物作成→バッ...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – バックアップ自動生成

ねらい:ブック・シート・CSV・版管理まで「毎回同じ手順」で自動バックアップするバックアップは「いつ」「どこに」「何を」「何世代残すか」をブレなく実行することが命です。VBAなら“時刻スタンプ付きの安...
Java

Java | オブジェクト指向:責務分離

責務分離とは責務分離は「ひとつのクラスやメソッドが、ひとつの明確な役割(Responsibility)だけを担うように分ける」設計の基本です。入力の整形、検証、計算、保存、表示などの関心事を混ぜず、境...
Java

Java | オブジェクト指向:パッケージ設計

パッケージ設計とはパッケージ設計は、クラスやインターフェースを「意味のあるまとまり」に分けて整理し、依存の向きと公開範囲をコントロールすることです。狙いは、変更の影響を局所化し、再利用とテストをしやす...
Java

Java | オブジェクト指向:継承 vs 委譲

継承と委譲の違い継承は「is-a(〜は〜の一種)」の関係で、親の振る舞いを子が受け継ぎ、必要ならオーバーライドで差分を加える仕組みです。委譲(コンポジション)は「has-a(〜は〜を持つ)」の関係で、...
Java

Java | オブジェクト指向:コンポジション(委譲)

コンポジション(委譲)とはコンポジションは「クラスが“持つ(has-a)”関係で他のオブジェクトを部品として組み合わせ、仕事をその部品へ任せる(委譲する)」設計です。継承(is-a)と違い、親の内部契...
Java

Java | オブジェクト指向:依存の方向

依存の方向とは「依存の方向」は、あるコードがどちら側(上位/下位、抽象/具体)へ向かって頼っているかを示す考え方です。呼び出し側が別のクラスやライブラリに依存するとき、その“向き”が正しいかどうかで保...
Java

Java | オブジェクト指向:依存関係とは

依存関係とは依存関係は「あるコードが、他のコードの存在や振る舞いを前提にして成り立っている状態」です。クラスが別のクラスを new したり、そのメソッドを呼んだり、型として参照したりすると、そこで依存...
Java

Java | オブジェクト指向:コンパイル時型と実行時型

コンパイル時型と実行時型とは「コンパイル時型」はコード上で宣言された“見える型”で、コンパイラが文法チェックやメソッド呼び出しの可否を判断するために使います。「実行時型」は new で実際に生成されて...
Java

Java | オブジェクト指向:動的バインディング

動的バインディングとは動的バインディングは「どのメソッド実装を呼ぶかを、実行時の“実体の型”に基づいて決める仕組み」です。参照の型が親(抽象クラスやインターフェース)でも、実際に入っているオブジェクト...
Java

Java | オブジェクト指向:instanceof

instanceof とは何かinstanceof は「ある参照が、特定の型(クラスやインターフェース)の実体かどうか」を真偽で判定する演算子です。ポリモーフィズムでは呼び出し側は共通型にそろえますが...
Java

Java | オブジェクト指向:ダウンキャスト

ダウンキャストとは何かダウンキャストは「親型(抽象クラスやインターフェース)の参照を、より具体的な子型に“下げて”扱う」ことです。たとえば Shape 型の変数を Rect 型として扱いたいときに使い...
Java

Java | オブジェクト指向:アップキャスト

アップキャストとは何かアップキャストは「子クラス(具体的な型)の参照を、親クラス(より抽象的な型)やインターフェースの参照として扱う」ことです。型を“上位”に持ち上げるイメージなのでアップ(up)キャ...
Java

Java | オブジェクト指向:ポリモーフィズム

ポリモーフィズムとはポリモーフィズムは「同じ“呼び方”で、実体に応じて振る舞いが切り替わる」仕組みです。呼び出し側は共通の型(親クラスやインターフェース)だけを意識して使い、実際に入っているオブジェク...
Java

Java | オブジェクト指向:static メソッド(interface)

interface の static メソッドとはインターフェースの static メソッドは「インターフェース名から直接呼ぶユーティリティ関数」です。インスタンスや実装クラスは不要で、契約(インター...
Java

Java | オブジェクト指向:default メソッド

default メソッドとはdefault メソッドは「インターフェースに書く“簡易の既定実装”」です。Java 8 で導入され、インターフェースにメソッド本体を持たせられるようになりました。これによ...
Java

Java | オブジェクト指向:インターフェースの多重実装

インターフェースの多重実装とはインターフェースの多重実装は「1つのクラスが複数のインターフェース契約を同時に満たす」ことです。Javaはクラスの多重継承はできませんが、インターフェースは複数まとめて ...
Python

Python | データ処理:棒+折れ線

概要(棒+折れ線は「量と推移」を一枚で伝える定番の複合グラフ)棒グラフは“量”の比較、折れ線グラフは“推移”や“傾向”の読み取りに向いています。2つを重ねることで「月別売上の量(棒)とユーザー数の推移...
Python

Python | データ処理:グラフの複合化

概要(グラフの複合化は「一枚で複数の視点」を重ねて伝える技)pandasとmatplotlibを組み合わせると、折れ線と棒グラフの重ね合わせ、二重軸、複数サブプロットなどを簡潔に作れます。複合化のポイ...
Python

Python | データ処理:時系列処理の基礎

概要(時系列の“型”を整えて、時間軸で正しく集計・解析する)時系列処理の基礎は、日付や時刻をdatetime型へ変換し、時間順に並べてから「期間集計」「移動統計」「シフトや差分」などの操作を行うことで...
Python

Python | データ処理:rolling

概要(rollingは「直近の一定区間で連続計算する」ための移動窓)pandasのrollingは、直近N件や一定時間幅(例:過去7日など)のデータを“窓”として切り出し、その窓ごとに平均・合計・標準...
Python

Python | データ処理:resample

概要(resampleは「時系列の頻度を変えて、期間ごとに集計・補間する」)pandasのresampleは、時系列データを別の時間間隔(例:日→週、分→時)へ変換するためのメソッドです。ダウンサンプ...
Python

Python | データ処理:datetime 変換

概要(datetime変換は「文字列の日付を“時系列のエンジン”に乗せる最初の一歩」)pandasで日付・時刻を扱うときは、まず文字列をdatetime型へ変換します。datetimeにしておくと、並...
Python

Python | データ処理:dtype

概要(dtypeは「列の型」。正しく揃えると計算・集計・可視化が安定する)pandasのdtype(データ型)は、各列が「数値・文字列・日時・真偽値・カテゴリなどのどれか」を表すラベルです。型がズレて...
Python

Python | データ処理:describe

概要(describeは「列ごとの要約統計を一瞬で確認する」入口)pandasのdescribeは、数値列やカテゴリ列の“基本統計”をまとめて表示するメソッドです。数値なら件数・平均・標準偏差・最小/...
Python

Python | データ処理:ソート sort_values

概要(sort_valuesは「列の値で並べ替えて“見やすく・計算しやすく”する基本操作)pandasのsort_valuesは、指定した列の値を基準にDataFrameを並べ替えるメソッドです。昇順...
Python

Python | データ処理:重複 drop_duplicates

概要(drop_duplicatesは「重複行を安全に取り除いて、件数や集計を正しくする」)pandasのdrop_duplicatesは、DataFrameやSeriesから“重複したデータ”を削除...
Python

Python | データ処理:欠損値 fillna

概要(fillnaは「欠損値を意図した値で埋めて分析を続行する」ための入口)pandasのfillnaは、DataFrameやSeriesに含まれる欠損値(NaN/None/pd.NA)を、固定値・前...
Python

Python | データ処理:lambda と組み合わせ

概要(lambdaは「その場で小さな関数」を作り、データ処理を短く書くための道具)lambda(無名関数)は、名前を付けずに1行で小さな関数を作る仕組みです。短い変換・条件分岐・並べ替えのキー指定など...
Python

Python | データ処理:pandas の apply

概要(applyは「行や列ごとに関数を適用して柔軟に加工する」)pandasのapplyは、SeriesやDataFrameに対して「各要素」「各行」「各列」へ関数を適用するための基本メソッドです。f...
Python

Python | データ処理:loc / iloc

概要(loc/ilocは「行・列の取り出し方が違う」二大基本操作)pandasのlocとilocは、DataFrameから行・列・セルを取り出すための代表的な方法です。locはラベル(行名・列名)で指...
Python

Python | データ処理:melt

概要(meltは「横持ちの列を縦に溶かして整然データへ変換する」)pandasのmeltは、ワイド形式(横持ち)をロング形式(縦持ち)へ変換するためのメソッドです。列として並んだ複数の計測値(例: M...
Python

Python | データ処理:pivot_table

概要(pivot_tableは「集計しながら縦長データを行×列へ再配置する」)pandasのpivot_tableは、Excelのピボットテーブルと同じ発想で「行(index)」「列(columns)...
Python

Python | データ処理:pivot

概要(pivotは「縦長データを横に広げて“見やすい表”に再配置する」)pandasのpivotは、行ラベル・列ラベル・値列を指定して、縦に並んだレコードを「行×列」の表へ並べ替えるメソッドです。Ex...
Python

Python | データ処理:pandas merge

概要(pandas.mergeは「共通キーで行を突き合わせる」SQLライクな結合)pandas.mergeは、2つのDataFrameを共通するキー(列やインデックス)を基準に結合します。SQLのJO...
Python

Python | データ処理:pandas concat

概要(pandas.concatは「複数の表を縦・横にまとめる」ための基本ツール)pandas.concatは、複数のDataFrameやSeriesを連結して1つのDataFrameにまとめる関数で...
Python

Python | データ処理:pandas read_json

概要(pandas.read_jsonは「JSONを表に変換する入口」)pandasのread_jsonは、JSON文字列・ファイル・URLなどを読み込み、分析しやすいDataFrameへ変換する関数...
Java

Java | オブジェクト指向:implements

implements とは何かimplements は「クラスがインターフェースの契約を実装します」という宣言です。インターフェースが定めるメソッドの“名前・引数・戻り値”を、クラス側で実体として提供...
Java

Java | オブジェクト指向:インターフェースとは

インターフェースとはインターフェースは「クラスが満たすべき契約(メソッドの型だけ)を定義するもの」です。実装は持たず、まず“名前・引数・戻り値”を決めることで、呼び出し側は契約だけに依存できます。クラ...
Java

Java | オブジェクト指向:抽象クラスの使いどころ

抽象クラスの狙いどころ抽象クラスは「共通の骨格と不変条件を親で固定し、差し替えたい部分だけ子に実装させる」ための道具です。インターフェースが“契約(メソッドの型)”だけなのに対し、抽象クラスは“状態(...
Java

Java | オブジェクト指向:抽象メソッド

抽象メソッドとは抽象メソッドは「中身(実装)がないメソッド」で、宣言だけを持ちます。abstract を付けて宣言し、具体的な処理は子クラスが必ず実装します。抽象クラスに定義して、共通の“名前・引数・...
Java

Java | オブジェクト指向:抽象クラスとは

抽象クラスとは抽象クラスは「直接はインスタンス化できない、共通の骨格と契約をまとめるためのクラス」です。abstract を付けて宣言し、抽象メソッド(中身のないメソッド)を含められます。継承した子ク...
Java

Java | オブジェクト指向:final フィールド

final フィールドとは何かfinal フィールドは「一度だけ代入でき、その後は再代入できない」フィールドです。オブジェクトの生成時に値を確定し、以降は参照を変えないことで、設計の予測可能性が上がり...
Java

Java | オブジェクト指向:final メソッド

final メソッドとは何かfinal メソッドは「子クラスからオーバーライド(上書き)できないメソッド」です。継承関係にあっても、その振る舞いを固定し、契約を壊されないようにします。親が守るべき安全...
Java

Java | オブジェクト指向:final クラス

final クラスとは何かfinal クラスは「継承を禁止したクラス」です。extends して子クラスを作ることができません。目的は、クラスの振る舞いを固定して“改変の余地”をなくし、設計の安全性・...
Java

Java | オブジェクト指向:多段継承の概念

多段継承とは何か多段継承は「親→子→孫…と継承が階層的に連なっている状態」を指します。AをBが継承し、BをCが継承する、といった“何段も連なる継承”です。Javaは「単一継承」なのでクラスを複数同時に...
Java

Java | オブジェクト指向:親クラスのコンストラクタ呼び出し

親コンストラクタ呼び出しとは何か子クラスのコンストラクタが、親クラス(スーパークラス)のコンストラクタを呼び出して「親の状態を先に正しく初期化する」仕組みです。Java では super(...) を...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – ピボット自動生成テンプレ

ねらい:明細から「ピボットを自動生成→更新→見える化」まで一括で回すピボットは「行・列・値・フィルター」を正しく指定すれば、集計や比較を数秒で作れます。VBAなら“ソース表を認識→ピボットを作成→フィ...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 発注書自動生成

ねらい:発注明細から「発注書の自動組版→数量・単価計算→PDF出力」まで一括で回す発注書は「ヘッダ(仕入先・発注番号・発注日・納期)」「明細(品目・数量・単価・金額)」「サマリ(小計・送料・値引き・税...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 請求書自動生成

ねらい:明細から「請求書の自動組版→金額計算→PDF出力」まで一括で回す請求書は「ヘッダ(請求先・請求番号・期間)」「明細(品目・数量・単価・小計)」「金額計算(小計→消費税→税込)」「体裁(罫線・書...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – シフト表自動生成

ねらい:希望・役割・公平性を満たしながら、月次シフトを一撃で自動生成するシフトは「希望(出勤可)」「役割(必要人数とスキル)」「制約(最大勤務・連続勤務・前後夜勤)」「公平性(偏り防止)」を同時に満た...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 名寄せテンプレ

ねらい:名寄せ(同一人物・同一企業の突合せ)を「正規化→判定→スコア→統合」の型で安全に回す名寄せは「表記ゆれ・略称・住所の揺れ」を潰し、重複候補を拾い、確信度でランク分けして、統合ルール(どの列を残...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 顧客リスト更新

ねらい:顧客リストを「正規化→重複処理→差分反映→出力整形」まで一括で安全更新する顧客リスト更新は、入力ゆれの正規化、重複の見える化と解消、既存マスタとの差分抽出と同期、最終の書式整備までを一気通貫で...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 在庫一覧更新

ねらい:入出庫を在庫マスタへ“安全に合算し、見える化まで”一括更新する在庫一覧更新は「初期在庫+入庫-出庫=現在庫」を壊れないやり方で確定し、閾値(補充点、最小在庫)で警告まで出すのが肝です。配列I/...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 出荷レポート自動作成

ねらい:出荷明細を“整形→集計→可視化→配布”まで一括で自動化する出荷レポートは「明細の型ブレ修正」「納期達成率・遅延件数の集計」「キャリア別・日別の基礎統計」「見える化(書式・条件付き書式)」「PD...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 売上集計+明細整形

ねらい:売上明細を“整形→集計→見える化”まで一括で回す売上管理の現場で本当に効くのは「明細の欠損や型ブレを直す→キーを正規化する→集計してアウトプットを整える」という一本の流れです。Excel関数の...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – マスタ差分×同期一括テンプレ

ねらい:マスタの「差分抽出→安全同期」を一括で回し、常に最新状態を保つマスタ差分×同期は「旧マスタ」と「新マスタ」を比較して、追加・削除・変更を正しく見極め、旧マスタを最新に更新する定型業務です。配列...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – マスタ結合×集計一括テンプレ

ねらい:明細にマスタを結合してから、即座に集計まで一括で完了させる「明細+マスタ結合→グループ集計→並べ替え→出力」をひとつのパイプラインにすると、10万行規模でも数秒で終わり、手作業や関数の脆さから...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 外部DB取り込みテンプレ

ねらい:外部DBから「安全・高速」に取り込み、毎日の更新を自動化する外部DB取り込みは「接続→SQL実行→配列に読み込み→シートへ一括書き戻し」の型にすれば、数万〜数十万行でも安定して一瞬で終わります...
JavaScript

JavaScript | DOM 操作:フォーム操作 – フォームデータ送信(FormData)

FormData とは何かFormData は、フォームの入力値を「送信用のペア(name → value)」としてまとめるための標準APIです。ファイルも含めて簡単に扱え、fetch などの非同期送...
JavaScript

JavaScript | DOM 操作:フォーム操作 – エラー表示の DOM 操作

エラー表示の DOM 操作とは何かフォームの「どこが、なぜ、どう直せばいいか」を画面に明確に示すために、DOM(HTML構造)を動的に追加・更新・削除することです。ここが重要です:ブラウザ標準のバブル...
JavaScript

JavaScript | DOM 操作:フォーム操作 – バリデーション(required, pattern など)

バリデーションとは何かバリデーションは「入力が条件を満たしているか」をチェックして、誤入力や欠落を防ぐ仕組みです。HTML とブラウザは、required・type・min/max・pattern な...
JavaScript

JavaScript | DOM 操作:フォーム操作 – フォーム送信イベント

フォーム送信イベントとは何かフォーム送信イベントは、ユーザーがフォームを送ろうとした瞬間に発火する “submit” イベントのことです。ここが重要です:submit は「実際の送信前」に発火するため...
JavaScript

JavaScript | DOM 操作:フォーム操作 – フォームの reset

フォームの reset とは何かフォームの reset は「フォーム内のすべての入力を“初期状態(HTMLで指定された値・選択)”に戻す」操作です。ここが重要です:reset は“現在値”ではなく“初...
JavaScript

JavaScript | DOM 操作:フォーム操作 – ラジオボタンの取得

ラジオボタンの取得とは何かラジオボタンは「同じ name を持つ選択肢の中から“必ず0か1つ”だけ選ぶ」入力です。JavaScript では“グループとして”扱うのがコツです。ここが重要です:同じ n...
JavaScript

JavaScript | DOM 操作:フォーム操作 – checked の操作

checked とは何かchecked は、checkbox と radio の「選択状態」を表す真偽値プロパティです。true なら選ばれている、false なら選ばれていない状態を意味します。ここ...
JavaScript

JavaScript | DOM 操作:フォーム操作 – select の取得・変更

select の取得・変更とは何かselect は「選択肢の中から値を1つ(または複数)選ぶ」ためのフォーム要素です。JavaScript では現在の選択値を読み取ったり、選択を変更したり、選択肢を動...
JavaScript

JavaScript | DOM 操作:フォーム操作 – input の value

input の value とは何かinput 要素の value は「現在の入力値」を表す文字列です。type に関わらず、基本は文字列として読み書きします。ここが重要です:type="number...
JavaScript

JavaScript | DOM 操作:フォーム操作 – フォーム要素の取得

フォーム要素の取得とは何かフォーム要素の取得は、HTML の form や input・select・textarea・button などにプログラムからアクセスして、値を読んだり書いたり、送信を制御...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – スクロール固定(overflow: hidden)

スクロール固定(overflow: hidden)とは何か「スクロール固定」は、ユーザーがスクロールできない状態にすることです。最も簡単な方法は、対象要素(よくあるのは body)に overflow...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – boundingClientRect

getBoundingClientRect とは何かgetBoundingClientRect は、要素の「画面(ビューポート)に対する位置とサイズ」を返すメソッドです。返ってくる値は小数を含む CS...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – ビューポートとは

ビューポートとは何かビューポートは「今、ユーザーに見えている画面の領域」です。ページ全体(ドキュメント)の中で、スクロールせずに表示されている矩形がビューポート。ここが重要です:JavaScriptで...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – 画面中央配置

画面中央配置とは何か「画面中央配置」は、要素をビューポート(今見えている画面)のちょうど真ん中に置くことです。モーダル、ダイアログ、ロード中インジケーターなどで頻繁に使います。ここが重要です:中央は「...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – スクロール位置の取得

スクロール位置の取得とは何かスクロール位置の取得は「今、ページや要素がどれだけスクロールされているか」を数値で読み取ることです。縦方向はどれだけ上から下へ動いたか(Top)、横方向は左から右へ動いたか...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – scrollTo / scrollBy

scrollTo / scrollBy とは何かscrollTo と scrollBy は、「スクロール位置をプログラムで動かす」ためのメソッドです。window(ページ全体)にも、スクロール可能な要...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – scrollWidth / scrollHeight

scrollWidth / scrollHeight とは何かscrollWidth と scrollHeight は、「要素のコンテンツが本来必要としている大きさ」を返すプロパティです。visibl...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – clientWidth / clientHeight

clientWidth / clientHeight とは何かclientWidth と clientHeight は、要素の「内側で実際に使える領域」のサイズを整数ピクセルで返すプロパティです。ここ...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – offsetWidth / offsetHeight

offsetWidth / offsetHeight とは何かoffsetWidth と offsetHeight は、要素の「見た目のサイズ」をピクセルで返すプロパティです。ここが重要です:bord...
JavaScript

JavaScript | DOM 操作:要素の位置・サイズ・スクロール – offsetTop / offsetLeft

offsetTop / offsetLeft とは何かoffsetTop と offsetLeft は、「その要素が“基準の親”(offsetParent)からどれだけ離れているか」を示すピクセル値で...
JavaScript

JavaScript | DOM 操作:イベント発展 – once: true

once: true とは何かonce: true は addEventListener のオプションで、「このリスナーは最初の一回だけ実行し、終わったら自動で取り外す」という宣言です。ここが重要です...
JavaScript

JavaScript | DOM 操作:イベント発展 – passive: true

passive: true とは何かpassive: true は、addEventListener のオプションで「このリスナーでは preventDefault を呼ばない」とブラウザに約束する設...
JavaScript

JavaScript | DOM 操作:イベント発展 – dispatchEvent

dispatchEvent とは何かdispatchEvent は「イベントを自分で発火させる」ためのメソッドです。DOM 要素や EventTarget に対して、既存のイベント(click など)...
JavaScript

JavaScript | DOM 操作:イベント発展 – カスタムイベント

カスタムイベントとは何かカスタムイベントは、あなたが「アプリ内の合図」を自由に作って通知できる仕組みです。DOM の仕組み(addEventListener / dispatchEvent)をそのまま...
JavaScript

JavaScript | DOM 操作:イベント発展 – コンテキストメニュー

コンテキストメニューとは何かコンテキストメニューは、右クリック(または長押し)した場所や対象に応じて“その場に適した操作”を提示するための UI です。ブラウザ標準のメニューを表示するイベントは co...
JavaScript

JavaScript | DOM 操作:イベント発展 – スクロールイベント

スクロールイベントとは何かスクロールイベントは、ページや特定のスクロール可能な要素のスクロール位置が変わった瞬間に発火する合図です。window(ページ全体)にも、overflow: auto などで...
JavaScript

JavaScript | DOM 操作:イベント発展 – フォーカスイベント

フォーカスイベントとは何かフォーカスイベントは「どの要素がキーボード操作の対象になったか/外れたか」を知らせる合図です。代表は focus(入る)、blur(出る)、そしてバブリングする仲間の foc...
JavaScript

JavaScript | DOM 操作:イベント発展 – イベント委譲

イベント委譲とは何かイベント委譲は、「たくさんの子要素それぞれにリスナーを付けず、親に1つだけ付けて子の操作に反応する」設計です。イベントがバブル(内側→外側)で伝わる仕組みを利用し、親のリスナー内で...
JavaScript

JavaScript | DOM 操作:イベント発展 – イベント伝播(キャプチャ / バブル)

イベント伝播とは何か(キャプチャ/バブルの全体像)イベント伝播は「ある要素で起きたイベントが、DOM ツリーの上下へ段階的に届く仕組み」です。段階は「キャプチャ(外側→内側)→ターゲット(実際の要素)...
JavaScript

JavaScript | DOM 操作:イベント発展 – stopPropagation

stopPropagation とは何かstopPropagation は「イベントが親要素へ伝わっていく流れ(伝播)を止める」ためのメソッドです。クリックなどのイベントは、最初に操作された要素から外...
JavaScript

JavaScript | DOM 操作:イベント基礎 – preventDefault

preventDefault とは何かpreventDefault は「イベントのデフォルト動作(ブラウザが標準で行う処理)」をキャンセルするためのメソッドです。例えばリンクの遷移、フォームの送信、ス...
JavaScript

JavaScript | DOM 操作:イベント基礎 – イベントのデフォルト動作

イベントのデフォルト動作とは何か「イベントのデフォルト動作」は、ブラウザが標準で行う振る舞いのことです。例として、リンクのクリックでページ遷移、フォームの submit で送信、テキスト入力で Ent...
JavaScript

JavaScript | DOM 操作:イベント基礎 – submit

submit とは何かsubmit は「フォームが送信される瞬間」に発火するイベントです。Enter キーや type="submit" のボタンで送信しようとしたとき、フォーム要素で受け取れます。こ...
JavaScript

JavaScript | DOM 操作:イベント基礎 – input / change

input と change とは何かinput と change は、フォーム要素の値が変わったときに発火するイベントです。input は「値が変わるたびに逐次発火」、change は「確定したタイ...
JavaScript

JavaScript | DOM 操作:イベント基礎 – キーボードイベント(keydown / keyup)

キーボードイベントとは何か(keydown / keyup)keydown は「キーが押された瞬間」、keyup は「キーが離された瞬間」に発火するイベントです。ショートカット、ゲームの操作、フォーム...
JavaScript

JavaScript | DOM 操作:イベント基礎 – マウスイベント(click / dblclick / mouseover)

マウスイベントの基礎(click / dblclick / mouseover)マウスイベントは「ユーザーの操作」をコードへ橋渡しする合図です。click は単押し、dblclick は素早い二連続ク...
JavaScript

JavaScript | DOM 操作:イベント基礎 – target と currentTarget

target と currentTarget とは何かイベントオブジェクトの target は「実際に操作された最も内側の要素」、currentTarget は「そのイベントリスナーが登録されている要...
JavaScript

JavaScript | DOM 操作:イベント基礎 – イベントオブジェクト

イベントオブジェクトとは何かイベントオブジェクト(一般に e と書く)は、「何が、どこで、どのように起きたか」の詳細を持つ“出来事の記録”です。addEventListener のコールバックに渡され...
JavaScript

JavaScript | DOM 操作:イベント基礎 – removeEventListener

removeEventListener とは何かremoveEventListener は、addEventListener で登録したイベントリスナーを「取り外す」ためのメソッドです。特定の要素(ま...
JavaScript

JavaScript | DOM 操作:イベント基礎 – addEventListener

addEventListener とは何かaddEventListener は「イベントが起きたときに実行する処理(リスナー)を登録する」ためのメソッドです。クリック、入力、スクロール、ロードなど、ブ...
JavaScript

JavaScript | DOM 操作:ノード操作 – prepend

prepend とは何かprepend は、親ノードの「先頭」にコンテンツを追加するメソッドです。ノード(要素やテキストノード)だけでなく、文字列も直接渡せ、さらに複数の引数を一度に追加できます。ここ...
JavaScript

JavaScript | DOM 操作:ノード操作 – append

append とは何かappend は、親ノードの「末尾」にコンテンツを追加するためのメソッドです。ノード(要素やテキストノード)だけでなく、文字列も直接渡せるのが特徴です。ここが重要です:appen...
JavaScript

JavaScript | DOM 操作:ノード操作 – remove(直接削除)

remove とは何か(直接削除のイメージ)remove は、要素自身が「自分を親から切り離して画面から消える」ためのメソッドです。document.getElementById("x").remov...
JavaScript

JavaScript | DOM 操作:ノード操作 – fragment の利用

DocumentFragment とは何かDocumentFragment(以下フラグメント)は、DOM に一時的に要素を“まとめて保持するための入れ物”です。画面(実DOM)にまだ接続されていないミ...
JavaScript

JavaScript | DOM 操作:ノード操作 – cloneNode

cloneNode とは何かcloneNode は、既存の DOM ノード(要素やテキスト)を“複製”するメソッドです。形は node.cloneNode(deep)。ここが重要です:deep が f...
JavaScript

JavaScript | DOM 操作:ノード操作 – replaceChild

replaceChild とは何かreplaceChild は「親ノードの子を別のノードに置き換える」メソッドです。形は parent.replaceChild(newChild, oldChild)...
JavaScript

JavaScript | DOM 操作:ノード操作 – removeChild

removeChild とは何かremoveChild は「親ノードから指定した子ノードを取り外す」メソッドです。形は parent.removeChild(child)。画面から消えるだけでなく、D...
JavaScript

JavaScript | DOM 操作:ノード操作 – insertBefore

insertBefore とは何かinsertBefore は「親ノードの中で、指定した子ノードの“直前”に新しいノードを挿入する」メソッドです。形は parent.insertBefore(newN...
JavaScript

JavaScript | DOM 操作:ノード操作 – appendChild

appendChild とは何かappendChild は、親ノードの「末尾」に子ノードを追加するメソッドです。DOM で新しく作った要素(createElement)や既存の要素を、指定した親の最後...
JavaScript

JavaScript | DOM 操作:ノード操作 – createElement

createElement とは何かcreateElement は、JavaScript で新しい HTML 要素を“ゼロから”作るためのメソッドです。たとえば div、button、img、li な...
JavaScript

JavaScript | DOM 操作:属性操作 – aria-* 属性

aria-* 属性とは何かARIA(Accessible Rich Internet Applications)の aria-* 属性は、UI の「意味・状態・関係」を支援技術(スクリーンリーダーなど...
JavaScript

JavaScript | DOM 操作:属性操作 – checked

checked とは何かchecked は「チェックボックスやラジオボタンの“選択状態”」を表します。ここが重要です:HTMLの checked 属性は“初期状態”を示し、JavaScript の e...
JavaScript

JavaScript | DOM 操作:属性操作 – input の value

input の value とは何かinput の value には「現在の入力値(プロパティ)」と「初期値(属性)」の2種類があります。JavaScript から扱うときは、今画面に表示されている“...
JavaScript

JavaScript | DOM 操作:属性操作 – href・src の変更

href・src とは何かhref と src は、要素が「どこを指すか・何を読み込むか」を示す属性です。href はリンク先(a、link、area)、src はリソースの場所(img、script...
JavaScript

JavaScript | DOM 操作:属性操作 – disabled 属性

disabled 属性とは何かdisabled は「フォーム要素を操作不可」にするための“boolean 属性”です。ボタン、入力欄、セレクト、テキストエリア、フィールドセットなどに付けると、フォーカ...
JavaScript

JavaScript | DOM 操作:属性操作 – data-* 属性

data-* 属性とは何かdata-* 属性は、HTML 要素に「任意のメタ情報」を文字列として安全に持たせるための仕組みです。例として data-id、data-role、data-payload ...
JavaScript

JavaScript | DOM 操作:属性操作 – hasAttribute

hasAttribute とは何かhasAttribute は、要素に指定した「属性が付いているか」を true/false で判定するメソッドです。値が空文字でも、属性が存在していれば true に...
JavaScript

JavaScript | DOM 操作:属性操作 – removeAttribute

removeAttribute とは何かremoveAttribute は、要素から指定した「属性」を完全に取り除くメソッドです。title、href、src、aria-、data-、style など...
JavaScript

JavaScript | DOM 操作:属性操作 – setAttribute

setAttribute とは何かsetAttribute は、要素の「属性(attr)」に文字列の値を設定するためのメソッドです。href、title、alt、aria-、data- など、HTML...
JavaScript

JavaScript | DOM 操作:属性操作 – getAttribute

getAttribute とは何かgetAttribute は、要素に付いている「属性の値」を文字列で取り出すためのメソッドです。返ってくるのは“常に文字列”か“存在しないときは null”。ここが重...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – getComputedStyle

getComputedStyle とは何かgetComputedStyle は、CSS の継承・外部スタイル・メディアクエリ・ユーザー設定などをすべて反映した「最終的な見え方」を取得するための関数です...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – 要素の高さ・幅の取得

要素の高さ・幅の「どれを測るか」同じ「幅・高さ」でも、境界や余白の扱いで数値が変わります。どの API を使うかで意味が違うため、まず“何を含めたいか”を決めましょう。ここが重要です:枠線(borde...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – visibility の切り替え

visibility の切り替えとは何かvisibility は「要素を見える/見えない」にするプロパティです。visibility: hidden にすると見えなくなりますが、レイアウト上の“場所”...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – display の切り替え

display の切り替えとは何か要素の「表示・非表示」を制御する最基本の方法が display の切り替えです。display: none にすると要素は完全に消え、ページのレイアウト計算からも外れ...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – スタイル変更(style)

style とは何かstyle は、要素の「インライン CSS(その要素だけに直接書くスタイル)」を JavaScript から読み書きするためのプロパティです。クラス切り替えより細かく数値や色を直接...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – classList.contains

classList.contains とは何かclassList.contains は、要素に指定した「CSS クラスが付いているか」を真偽値で判定するメソッドです。返り値は true/false の...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – classList.toggle

classList.toggle とは何かclassList.toggle は、要素に指定した「CSS クラス」を付けたり外したりするメソッドです。クラスが付いていなければ追加、付いていれば削除します...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – classList.remove

classList.remove とは何かclassList.remove は、要素から指定した「CSS クラス」を安全に取り除くメソッドです。指定したクラスが付いていなければ何も起こらず、エラーにも...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – classList.add

classList.add とは何かclassList.add は、要素に「CSS クラス」を安全に追加するためのメソッドです。すでに同じクラスが付いていても重複せず、必要なクラス名を1つ以上まとめて...
JavaScript

JavaScript | DOM 操作:CSS / クラス操作 – className

className とは何かclassName は、要素の class 属性(CSS クラス名の一覧)を「文字列として」読み書きするためのプロパティです。p, div などの要素に対して、クラスをまと...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – 値の安全な出力方法

値の安全な出力方法とは何か「安全な出力」とは、外部データやユーザー入力を画面に表示・属性へ設定する際に、HTMLとして解釈・実行されないように扱うことです。ここが重要です:構造(HTML)は固定し、可...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – テキストと要素の違い

テキストと要素の違いとは何かDOM は「要素ノード」と「テキストノード」でできています。要素ノードはタグ(div、p、span など)そのもので、属性やクラス、イベントを持てます。テキストノードは純粋...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – 属性値の文字列化

属性値の文字列化とは何か「属性値の文字列化」は、DOM の属性に値を入れるとき、数値や真偽値、オブジェクトなど“文字列以外”の値を安全・意図通りの文字列に変換してから設定することです。ここが重要です:...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – 改行・スペースの扱い

改行・スペースの扱いとは何かテキストの改行やスペースは、「どのプロパティで入れるか(textContent/innerText/innerHTML)」と「CSS の white-space 設定」によ...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – insertAdjacentHTML

insertAdjacentHTML とは何かinsertAdjacentHTML は、指定した位置に「HTML文字列をそのままパースして挿入」するためのメソッドです。ターゲット要素の周囲や内側に、細...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – createTextNode

createTextNode とは何かcreateTextNode は、「テキストノード」を新しく作るためのメソッドです。HTML の中身は要素ノード(div、p、span など)とテキストノード(純...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – HTML インジェクションの危険性

HTML インジェクションとは何かHTML インジェクションは、外部から渡された文字列が「HTMLとして解釈・実行されてしまう」問題です。表示したい“文字”のはずがタグとして扱われると、画面の改ざん、...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – innerHTML

innerHTML とは何かinnerHTML は、要素の「中身(子要素やテキスト)」を、HTML文字列として読み書きするためのプロパティです。文字列を代入すると、その場でパースされて要素やテキストに...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – innerText

innerText とは何かinnerText は「画面に見えているテキスト」を読み書きするためのプロパティです。値を読むと、CSS の表示状態を考慮して“今見えている文字列”だけが返ります。値を書き...
JavaScript

JavaScript | DOM 操作:テキスト・内容変更 – textContent

textContent とは何かtextContent は、要素の「テキストだけ」を安全に読み書きするためのプロパティです。値を設定すると、要素内のテキストノードが置き換わり、HTML タグは「ただの...
JavaScript

JavaScript | DOM 操作:要素の取得 – 要素の存在チェック

要素の存在チェックとは何か「要素の存在チェック」は、操作したい要素が本当に DOM にあるかを確認し、なければ安全にスキップしたり代替処理に切り替えたりすることです。ここが重要です:存在を前提に書くと...
JavaScript

JavaScript | DOM 操作:要素の取得 – matches

matches とは何かmatches は、ある要素が「指定した CSS セレクタに現在一致しているか」を真偽値で返すメソッドです。ここが重要です:取得した要素に対して直接判定できるため、「このクリッ...
JavaScript

JavaScript | DOM 操作:要素の取得 – closest

closest とは何かclosest は、ある要素から「自分自身を含めて、上方向(祖先方向)にセレクタに一致する最初の要素」を返すメソッドです。見つかればその要素、見つからなければ null。ここが...
JavaScript

JavaScript | DOM 操作:要素の取得 – 親要素・子要素の取得

親要素・子要素とは何かDOM は木構造で、要素どうしが「親子」の関係を持ちます。ある要素を内側に包む要素が親、内側に含まれている要素が子です。ここが重要です:DOM 操作では「どの範囲(親配下)を対象...
JavaScript

JavaScript | DOM 操作:要素の取得 – CSS セレクタの使い分け

CSS セレクタの使い分けとは何かCSS セレクタは、HTML の中から「どの要素を対象にするか」を表す記法で、querySelector / querySelectorAll でもそのまま使えます。...
JavaScript

JavaScript | DOM 操作:要素の取得 – querySelectorAll

querySelectorAll とは何かquerySelectorAll は、CSS セレクタを使って「一致するすべての要素」を取得するメソッドです。返り値は NodeList(静的コレクション) ...
JavaScript

JavaScript | DOM 操作:要素の取得 – querySelector

querySelector とは何かquerySelector は、CSS セレクタで「最初に一致した1つの要素」を取得するためのメソッドです。返り値は要素か、見つからなければ null。ここが重要で...
JavaScript

JavaScript | DOM 操作:要素の取得 – getElementsByTagName

getElementsByTagName とは何かgetElementsByTagName は、指定したタグ名(例: "div", "p", "a")を持つ要素をまとめて取得するメソッドです。返り値は...
JavaScript

JavaScript | DOM 操作:要素の取得 – getElementsByClassName

getElementsByClassName とは何かgetElementsByClassName は、「指定したクラス名を持つ要素をまとめて取得する」ためのメソッドです。返り値は HTMLColle...
JavaScript

JavaScript | DOM 操作:要素の取得 – getElementById

getElementById とは何かgetElementById は、document(ページ全体の入口)から「id が一致する要素を1つだけ即座に取得する」ための最短ルートです。見つかれば要素を返...
Java

Java | オブジェクト指向:super キーワード

何をするキーワードかsuper は「親クラス(スーパークラス)のメンバーを参照する」ためのキーワードです。子クラスでオーバーライドしたメソッドから、親の元の実装を呼びたいときや、親のコンストラクタを明...
Java

Java | オブジェクト指向:継承のデメリット

まず、継承のデメリットとは何か継承は便利ですが、「親と子が強く結び付く」ため、変更や保守の難易度を上げる要因になりがちです。意図しない依存が広がり、拡張やテストが難しくなる“落とし穴”が複数あります。...
Java

Java | オブジェクト指向:継承のメリット

継承のメリットを一言で継承の最大のメリットは「共通の契約を共有しながら、振る舞いだけを差し替えて再利用できる」ことです。コードの重複を減らし、拡張しやすく、呼び出し側は共通型で扱えるため、全体の設計が...
Java

Java | オブジェクト指向:継承(extends)

まず、継承(extends)とは何か継承は「既存のクラスの性質(フィールドやメソッド)を受け継ぎ、必要な部分だけを差し替えたり足したりする」仕組みです。extends で親クラスを指定すると、子クラス...
Java

Java | オブジェクト指向:@Override アノテーション

何をするアノテーションか@Override は「このメソッドは親のメソッドをオーバーライド(上書き)しています」とコンパイラに伝えるための印です。付けておくと、シグネチャの食い違いやタイプミス、オーバ...
Java

Java | オブジェクト指向:メソッドのオーバーライド

何が「オーバーライド」かメソッドのオーバーライドは、親クラスが持つメソッドの「振る舞いを、子クラスで置き換える」ことです。継承関係にあるとき、同じメソッド名・同じ引数(シグネチャ)を子クラスで再定義す...
Java

Java | オブジェクト指向:toString のオーバーライド

toString をオーバーライドする意味toString は「そのオブジェクトを人間が読める文字列にする」ためのメソッドです。デフォルトはクラス名+ハッシュ(例: com.example.User@...
Java

Java | オブジェクト指向:equals と == の違い

ざっくり結論== は「同じ実体(同じ場所)か」を比べる演算子、equals は「中身(値)が同じか」を比べるメソッドです。プリミティブでは == が値比較、参照型(オブジェクト)では == が参照比較...
Java

Java | オブジェクト指向:hashCode のオーバーライド

なぜ hashCode をオーバーライドするのかhashCode は「オブジェクトのハッシュ値」を返すメソッドで、HashMap・HashSet などのハッシュ構造が「どのバケットに入れるか」を決める...
Java

Java | オブジェクト指向:equals のオーバーライド

equals をオーバーライドする意味equals は「同じモノかどうか」を値の観点で判定するためのメソッドです。デフォルトの equals は「同じインスタンス(同一性)」しか比較しませんが、値オブ...
Java

Java | オブジェクト指向:値オブジェクトとは

値オブジェクトとは何か値オブジェクトは「値そのものを表す小さな不変の型」です。金額、メールアドレス、期間、座標、IDなど、意味とルールを持つ“ただの値”をクラス化して、検証・整合性・振る舞い(比較や計...
Java

Java | オブジェクト指向:不変オブジェクトの考え方

不変オブジェクトとは何か不変オブジェクトは「生成後に状態が一切変わらない」オブジェクトです。フィールドは初期化時に確定され、その後は再代入されません。外から見ても中から見ても、値が変化しないので、並行...
Java

Java | オブジェクト指向:getter / setter

全体像getter / setter は「フィールド(内部状態)を外から安全に読み書きするための窓口」です。直接フィールドを公開せず、メソッド経由にすることで、読み取りは意図を伝え、書き込みは検証や前...
Java

Java | オブジェクト指向:カプセル化の目的

まとめて言うと何かカプセル化は「内部の状態や仕組みを隠し、外からは安全な窓口だけを見せる」設計のことです。目的は3つに絞られます。整合性の保護(壊れない)、変更容易性(中身を差し替えても外が壊れない)...
Java

Java | オブジェクト指向:パッケージプライベート

全体像パッケージプライベート(package-private)は「アクセス修飾子を何も付けない」状態の可視性で、同一パッケージ内からだけ見える(使える)という意味です。クラス・メソッド・フィールド・コ...
Java

Java | オブジェクト指向:protected の意味

全体像protected は「同じパッケージ内から見える」ことに加えて「別パッケージでも、継承したサブクラスからは自分自身を通して見える」アクセス修飾子です。外部に完全公開する public と、クラ...
Java

Java | オブジェクト指向:private の意味

全体像private は「同じクラスの中からだけ見える」というアクセス修飾子です。外部のクラスはもちろん、継承したサブクラスからも直接は触れません。目的はカプセル化——内部の状態や実装詳細を隠し、外部...
Java

Java | オブジェクト指向:public の意味

全体像public は「どこからでも見える・使える」という意味のアクセス修飾子です。パッケージが違っても、クラス外からでも、他のモジュールからでも、public にしたメンバー(クラス・メソッド・フィ...
Java

Java | オブジェクト指向:アクセス修飾子の種類

全体像アクセス修飾子は「どこからそのクラス・フィールド・メソッドが見えるか(使えるか)」を制御するための言語機能です。公開範囲を絞ることで、意図しない使われ方や整合性の破壊を防ぎ、APIの進化に強くで...
Java

Java | オブジェクト指向:static フィールドの用途

全体像static フィールドは「クラスに属する共有の状態」を表します。インスタンス(個体)ごとに違う値ではなく、クラス全体で1つだけ存在する値です。用途は「定数」「設定」「生成数のカウンタ」「共有キ...
Java

Java | オブジェクト指向:static メソッドの制約

概要static メソッドは「クラスに属する処理」で、インスタンス(オブジェクト)に依存しない計算や共通ユーティリティを表します。インスタンスがなくても呼べる一方で、インスタンス特有の情報には触れられ...
Java

Java | オブジェクト指向:static とインスタンスの違い

全体像static は「クラスに属するもの」、インスタンスは「オブジェクト(個体)に属するもの」です。static フィールドやメソッドは全インスタンスで共有され、クラスがロードされた時点で使えます。...
Java

Java | オブジェクト指向:インスタンス変数のスコープ

全体像インスタンス変数(フィールド)は「オブジェクトがずっと覚えている状態」で、クラスの中に宣言します。スコープは「どこからその変数が見えるか」を意味し、インスタンス変数は基本的に同じクラスの全メソッ...
Java

Java | オブジェクト指向:メソッド内ローカル変数

ローカル変数の全体像メソッド内ローカル変数は「メソッドの中だけで使える一時的なメモ」。メソッドが呼ばれている間だけ存在し、終わったら消えます。オブジェクトの状態(フィールド)とは別物で、外から見えませ...
Java

Java | オブジェクト指向:フィールド初期化

フィールド初期化の全体像フィールド初期化は「オブジェクトの状態を安全に立ち上げる」ための最初の設計作業です。Java では、フィールドは宣言時の初期化式、インスタンス初期化子、コンストラクタの順で整え...
Java

Java | オブジェクト指向:this キーワード

this の全体像this は「今まさに動いている、そのオブジェクト自身」を指すキーワードです。インスタンスメソッドやコンストラクタの中で使えて、フィールドへのアクセス、他のコンストラクタの呼び出し、...
Java

Java | オブジェクト指向:引数付きコンストラクタ

引数付きコンストラクタの全体像引数付きコンストラクタは、生成時に必要な情報を受け取って「正しい初期状態」を確立するための入口です。クラス名と同名で定義し、new クラス名(必要な値…) の形で呼びます...
Java

Java | オブジェクト指向:デフォルトコンストラクタ

デフォルトコンストラクタの全体像デフォルトコンストラクタは「引数なしのコンストラクタ」です。クラスにコンストラクタを1つも定義していない場合、Javaコンパイラが自動で用意します。役割は「そのクラスの...
Java

Java | オブジェクト指向:コンストラクタの役割

コンストラクタの全体像コンストラクタは「オブジェクトの初期状態を正しく確立するための特別なメソッド」です。返り値型を書かずクラス名と同名で定義し、new とともに呼ばれます。役割は「必要な値を受け取り...
Java

Java | オブジェクト指向:メソッド(振る舞い)

メソッドの全体像メソッド(振る舞い)は、オブジェクトが「何ができるか」を表す動作の定義です。フィールド(状態)に対して、検証しながら安全に操作したり、結果を計算して返したりします。Java では「イン...
Java

Java | オブジェクト指向:フィールド(メンバ変数)

フィールドの全体像フィールド(メンバ変数)は、オブジェクトが「覚えておく状態」です。クラスの中に宣言し、各オブジェクトがそれぞれの値を持ちます。Java では「インスタンスフィールド(個体ごと)」と「...
Java

Java | オブジェクト指向:インスタンス生成(new)

インスタンス生成の全体像インスタンス生成は「クラスという設計図から、具体的な“もの”をメモリ上に作る」行為です。Java では new クラス名(引数…) を呼ぶと、必要なメモリが確保され、フィールド...
Java

Java | オブジェクト指向:クラス定義の構文

クラス定義の全体像クラスは「状態(フィールド)と振る舞い(メソッド)」をひとまとめにする設計図です。基本構文は「パッケージ宣言→import→クラス宣言→フィールド→コンストラクタ→メソッド→ネスト型...
Java

Java | オブジェクト指向:クラスとオブジェクトの違い

全体像「クラス」は設計図、「オブジェクト」は設計図から作られた実体です。クラスはフィールド(状態)とメソッド(振る舞い)を定義し、new でインスタンス化すると、その時点の具体的な状態を持つオブジェク...
Java

Java | オブジェクト指向:オブジェクト指向とは何か

オブジェクト指向の全体像オブジェクト指向は「もの(オブジェクト)に状態と振る舞いを持たせ、役割ごとに分けて協調させる」考え方です。ものの設計図がクラスで、実体がオブジェクト。複雑さは“責務の分割”で小...
Java

Java | 基礎文法:小さなアプリの構築

小さなアプリ構築の全体像小さなアプリは「起動の配電盤(main)」「入力(CLI/ファイル)」「ドメインロジック」「永続化(ファイル/メモリ)」「出力(標準出力/ファイル)」の5点を薄く分けると、読み...
Java

Java | 基礎文法:例題をコードに落とす練習

コードに落とす練習の全体像「例題をコードに落とす」とは、文章で書かれた問題を、入力・出力・処理手順・境界条件に分解して、テスト可能な小さな関数やプログラムに組み立てることです。重要なのは「考える順序」...
Java

Java | 基礎文法:文字コード

文字コードの全体像文字コードは「文字をバイト列に変換・復元するための規則」です。Java の内部表現は Unicode を採用し、文字列は UTF-16(コードユニット)で保持されます。一方、ファイル...
Java

Java | 基礎文法:Intellij の自動補完

自動補完の全体像IntelliJ IDEA の自動補完は、書いている途中で「次にあり得る候補」を提示して、入力を短縮し、ミスを防ぎます。基本は Ctrl+Space(Mac は ⌃Space)で起動し...
Java

Java | 基礎文法:コマンドライン引数

コマンドライン引数の全体像Java のプログラムは main(String[] args) から始まり、args に「起動時に渡された文字列」が順番どおり入ります。引数はすべて文字列で渡されるので、必...
Java

Java | 基礎文法:main クラスの役割

main クラスの全体像Java アプリは「エントリポイント」である main メソッドから始まります。main を持つクラス(便宜上「main クラス」)は、起動時に必要な初期化を行い、コマンドライ...
Java

Java | 基礎文法:メソッドチェーン

メソッドチェーンの全体像メソッドチェーンは「メソッドの戻り値に対して、さらにメソッドを続けて呼ぶ」書き方です。オブジェクトが「次も同じ型(または関連型)を返す」ように設計されていると、ドットを繋いで流...
Java

Java | 基礎文法:可変長引数

可変長引数の全体像可変長引数(varargs)は、メソッドに「0個以上の引数」を渡せる仕組みです。シグネチャでは Type... name と書き、呼び出し側は m()、m(a)、m(a, b, c)...
Java

Java | 基礎文法:定数クラス(軽く)

定数クラスの全体像定数クラスは「アプリ全体で共有する変わらない値」を一か所にまとめて、意味のある名前で再利用するための入れ物です。マジックナンバーや散らばった文字列を排除し、変更箇所を一か所に集約でき...
Java

Java | 基礎文法:バッドパターン例(巨大メソッドなど)

バッドパターンの全体像バッドパターンは「動くけど、壊れやすく、読みにくく、直しにくい」コードの形です。巨大メソッド、深いネスト、長すぎる引数、フラグ引数、マジックナンバー、神クラス(God Class...
Java

Java | 基礎文法:コメントの適切な量

コメントの考え方の全体像「適切な量のコメント」は、コードの理解を速め、変更を安全にするための最小限の説明です。コメントは“何をしているか”より“なぜそうしているか”を伝えるのが核で、コードで表現できる...
Java

Java | 基礎文法:コーディングスタイル

コーディングスタイルの全体像コーディングスタイルは「読みやすさ」「一貫性」「変更に強い設計」をコードに刻むための約束事です。Java では命名・インデント・括弧・行の構成・コメント(Javadoc)・...
Java

Java | 基礎文法:ブロック構造

ブロック構造の全体像ブロック構造は、波括弧 { ... } で囲まれた「まとまり」です。Java のコードはブロックの入れ子でできており、スコープ(見える範囲)とライフタイム(生きている期間)、制御の...
Java

Java | 基礎文法:ローカル変数のスコープ

ローカル変数のスコープの全体像「スコープ」は、ローカル変数が「どこから見えて、どこまで使えるか」の範囲です。Java のローカル変数は「宣言されたブロック({ })の内側」でだけ有効で、ブロックを出た...
Java

Java | 基礎文法:System.out.printf

System.out.printf の全体像System.out.printf は「書式指定子(フォーマット)」を使って、値を整形して出力するためのメソッドです。プレースホルダ(例:%d, %s, %...
Java

Java | 基礎文法:配列のソート(Arrays.sort)

配列ソートの全体像Arrays.sort は配列を「その場で」昇順に並べ替える標準APIです。プリミティブ配列(int や任意クラスの配列)で動作や拡張性が少し異なります。基本は自然順(数値の昇順、文...
Java

Java | 基礎文法:配列のコピー

配列コピーの全体像「配列のコピー」は、既存の配列から新しい配列を作って中身を複製することです。Java では System.arraycopy、Arrays.copyOf、Arrays.copyOfR...
Java

Java | 基礎文法:文字列比較

文字列比較の全体像Javaでの文字列比較は「参照が同じか(==)」と「内容が同じか(equals)」の二軸があります。日常的に必要なのは内容比較です。さらに「大文字小文字を無視」「辞書順で並べる」「ユ...
Java

Java | 基礎文法:hashCode の基礎

hashCode の全体像hashCode は「オブジェクトを整数に写像する関数」で、主に HashMap/HashSet が高速に探索するために使います。equals が「意味として同じか」を判定す...
Java

Java | 基礎文法:equals の基礎

equals の全体像Java の equals は「二つのオブジェクトが“意味として”同じか」を判定するメソッドです。参照が同じか(同一性)は ==、意味が同じか(同値性)は equals で比べま...
Java

Java | 基礎文法:ランタイムエラーとコンパイルエラー

全体像Java のエラーは大きく「コンパイルエラー」と「ランタイムエラー」に分かれます。コンパイルエラーは「プログラムに文法・型・宣言の誤りがあり、そもそも実行ファイルを作れない」状態です。ランタイム...
Java

Java | 基礎文法:VSCode / IntelliJ の基本操作

IDE の全体像VSCode と IntelliJ IDEA は、Java の開発・実行・テスト・デバッグ・リファクタリングを一気通貫で支える統合開発環境です。VSCode は拡張機能で軽量に始められ...
Java

Java | 基礎文法:break ポイント

ブレークポイントの全体像ブレークポイントは「この行で一度、必ず止まって中身を観測する」ための印(デバッグの要」です。IDE(IntelliJ IDEA、Eclipse、VS Code など)で指定した...
Java

Java | 基礎文法:ステップ実行

ステップ実行の全体像ステップ実行は、プログラムを一行ずつ進めて「流れ」と「その瞬間の状態」を目で確認するデバッグ手法です。IDE(IntelliJ IDEA、Eclipse、VS Code など)でブ...
Java

Java | 基礎文法:変数ウォッチ

変数ウォッチの全体像変数ウォッチは、プログラムを一時停止して「いまこの瞬間の変数や式の値」を安全に観測するデバッグ技法です。IDE(IntelliJ IDEA、Eclipse、VS Code など)の...
Java

Java | 基礎文法:デバッグの基本

デバッグの全体像デバッグは「バグの原因を特定して、意図どおりに直す」作業です。Javaでは、再現手順の固定、ログやスタックトレースの読み取り、IDEのブレークポイントでの実行停止・変数観察、最小化した...
Java

Java | 基礎文法:API リファレンスの読み方

API リファレンスの全体像API リファレンスは「クラスやメソッドが何をし、どう使うべきか」を正確に伝える公式資料です。Java では標準ライブラリ(java.base など)の各クラスに対して、概...
Java

Java | 基礎文法:フロー制御の設計

フロー制御の全体像フロー制御は「どの順番で、どの条件で、どこまで処理するか」を設計することです。Javaでは if/switch、for/while、break/continue、early retu...
Java

Java | 基礎文法:early return

early return の全体像early return(早期リターン)は、関数の冒頭で「前提違反・エラー・不要条件」をすぐに判定して、処理を中断し、直ちに戻り値を返す書き方です。深い if/els...
Java

Java | 基礎文法:条件分岐のネスト

条件分岐のネストの全体像条件分岐のネストは、if/else を入れ子にして複数の前提やケースを順に判定する書き方です。複雑なロジックを表現できますが、深くなるほど読みづらく、バグが入りやすくなります。...
Java

Java | 基礎文法:繰り返しのネスト

繰り返しのネストの全体像「繰り返しのネスト」は、for/while/foreach などのループを入れ子にして、2次元以上のデータ(表、グリッド、組み合わせ)を処理する書き方です。外側のループが“行”...
Java

Java | 基礎文法:IndexOutOfBoundsException

IndexOutOfBoundsException の全体像IndexOutOfBoundsException(IOBE)は「インデックスが有効範囲の外」を指したときに投げられる実行時例外です。配列、...
Java

Java | 基礎文法:ArithmeticException

ArithmeticException の全体像ArithmeticException は「算術計算が不正で続行できない」ときに投げられる実行時例外です。代表例は整数の 0 除算(割り算・剰余の分母が...
Java

Java | 基礎文法:NullPointerException

NullPointerException の全体像NullPointerException(NPE)は「参照が null のまま、メソッド呼び出しやフィールド参照など“あるはずのもの”を使おうとした時...
Java

Java | 基礎文法:throw

throw の全体像throw は「ここで例外を発生させる」という明示的な合図です。コードが不正な状態や契約違反を検知した瞬間に処理を中断し、例外オブジェクトを投げて呼び出し側へ失敗を伝えます。使いど...
Java

Java | 基礎文法:throws

throws の全体像throws は「このメソッドは特定の例外を投げる可能性がある」と呼び出し側へ宣言するための構文です。主にチェック例外(IOException など)に使われ、呼び出し側に「捕ま...
Java

Java | 基礎文法:finally

finally の全体像finally は「例外が起きても起きなくても、最後に必ず実行したい後始末」を書くための節です。try で本処理、必要なら catch で失敗時の対応を行い、最後に final...
Java

Java | 基礎文法:catch

catch の全体像catch は、try ブロックで発生した例外を「受け止めて、意味のある対処をする」ための節です。例外の型ごとに複数の catch を並べ、具体的な回復やメッセージ出力、再スロー(...
Java

Java | 基礎文法:try

try の全体像try は「失敗しうる処理を囲み、例外が起きたときに安全に対応する」ための構文です。基本は try の中に通常処理を書き、失敗したら catch で受け止め、最後の後始末を final...
Java

Java | 基礎文法:例外とは

例外の全体像例外(Exception)は「通常の処理の流れを中断して、異常事態を安全に伝える仕組み」です。ファイルがない、ネットワークが切れた、引数が不正、ゼロ除算など「このまま続けると壊れる」状況で...
Java

Java | 基礎文法:コーディング規約

コーディング規約の全体像コーディング規約は「チーム全体でコードの見た目と書き方を揃えるための約束事」です。読みやすさ、保守性、バグ回避、ツール連携を高めます。Javaでは命名、インデント、改行、波括弧...
Java

Java | 基礎文法:可読性の高い変数名

可読性の高い変数名の全体像変数名は「コードの意味を最短で伝えるラベル」です。可読性の高い名前は、型や実装に頼らず「何を表し、どの単位・範囲・状態か」を一目で分かるようにします。Java では小文字のキ...
Java

Java | 基礎文法:final

final の全体像final は「再代入や変更を禁止する」ためのキーワードです。対象は変数・フィールド・メソッド・クラスで、付ける場所によって意味が変わります。基本は「変数なら再代入不可」「メソッド...
Java

Java | 基礎文法:定数の宣言

定数の全体像定数は「値を変えない」と約束した識別子です。Javaでは final を使って再代入を禁止します。クラス全体で共有する不変の値は static final にし、インスタンスごとに不変の値...
Java

Java | 基礎文法:ガベージコレクションの概念

ガベージコレクションの全体像ガベージコレクション(GC)は「もう使われないオブジェクトを自動で見つけてメモリを回収する仕組み」です。Javaではメモリ解放を手動で書く必要がなく、プログラムは「必要なと...
Java

Java | 基礎文法:Boolean の扱い

Boolean の全体像Javaの真偽値は「プリミティブの boolean」と「ラッパー型の Boolean」の2種類があります。boolean は値そのもの(true/false)、Boolean ...
Java

Java | 基礎文法:null

null の全体像null は「参照がどのオブジェクトも指していない」ことを表す特別な値です。プリミティブ型(int、double、boolean など)には存在せず、参照型(String、配列、クラ...
Java

Java | 基礎文法:ラッパークラス

ラッパークラスの全体像ラッパークラスは、プリミティブ型(int、long、double など)をオブジェクトとして扱うためのクラス群です。代表は Integer、Long、Double、Float、S...
Java

Java | 基礎文法:型変換(キャスト)

型変換(キャスト)の全体像キャストは「コンパイラが自動で変換しない型へ、開発者の意図で変換を命じる」操作です。プリミティブ間の縮小変換(double → int など)や、参照型の上下変換(親子関係の...
Java

Java | 基礎文法:型変換(自動)

型変換(自動)の全体像Java の「自動型変換」は、コンパイラが安全だと判断できる範囲で型を広げたり(拡大変換)、式の計算前に統一の型へ昇格させたりする仕組みです。代表は「拡大プリミティブ変換(wid...
Java

Java | 基礎文法:エスケープシーケンス

エスケープシーケンスの全体像エスケープシーケンスは、文字列リテラルの中に「そのまま書けない特殊な文字」や「見えない制御文字」を埋め込むための約束です。Javaではバックスラッシュ(\)から始まる記法で...
Java

Java | 基礎文法:文字列結合

文字列結合の全体像Javaの文字列結合は「複数の値をひとつの文字列にまとめる」操作です。もっとも基本は + 演算子ですが、用途によって StringBuilder、String.join、String...
Java

Java | 基礎文法:Math クラス基礎

Math クラスの全体像Math クラスは「数値計算の基本ツール」をまとめたユーティリティです。すべて static メソッドと定数で構成され、インスタンス化せず Math.メソッド名(...) で使...
Java

Java | 基礎文法:標準出力

標準出力の全体像標準出力(stdout)は「プログラムの結果やメッセージを画面(コンソール)へ出す」ための出力先です。Java では System.out(型は PrintStream)を使って行い、...
Java

Java | 基礎文法:Scanner 入力

Scanner 入力の全体像Scanner は「テキストをトークン(単語・数値など)に分解して読み取る」ためのユーティリティです。標準入力(キーボード)だけでなく、文字列、ファイル、入力ストリームから...
Java

Java | 基礎文法:JavaDoc コメント

JavaDoc コメントの全体像JavaDoc コメントは「コードから自動生成できる公式ドキュメント」のためのコメントです。/** ... */ の形式で書き、メソッドやクラスの「目的」「前提」「戻り...
Java

Java | 基礎文法:コメントの書き方

コメントの全体像コメントは「コードの意図や背景を言葉で補う」ためのものです。Java では「行コメント」「ブロックコメント」「ドキュメンテーションコメント(Javadoc)」の3種類があり、用途に応じ...
Java

Java | 基礎文法:パッケージ

パッケージの全体像パッケージは「クラスを論理的にグループ化し、名前が衝突しないようにする仕組み」です。ファイルの先頭に package com.example.app; のように宣言し、ディレクトリ構...
Java

Java | 基礎文法:import 文

import 文の全体像import 文は「他のパッケージにあるクラスやインターフェースを、短い名前で使えるようにする宣言」です。書かなくても「完全修飾名(package.クラス名)」で使えますが、コ...
Java

Java | 基礎文法:static フィールド

Static フィールドの全体像static フィールド(クラス変数)は「クラスに属する共有の状態」です。インスタンスを何個作っても、static フィールドは1つだけ存在し、全インスタンスから同じ値...
Java

Java | 基礎文法:static メソッド

Static メソッドの全体像static メソッドは「クラスに属するメソッド」で、インスタンス(new で作るオブジェクト)を介さずに呼び出せます。数値計算や文字列整形など「個別の状態に依存しない処...
Java

Java | 基礎文法:オーバーロード

オーバーロードの全体像オーバーロードは「同じメソッド名に、引数の型・個数・並びが異なるバリエーションを定義する」仕組みです。呼び出し時の引数からコンパイラが最適な版を選びます。意味が近い処理を一つの名...
Java

Java | 基礎文法:戻り値

戻り値の全体像戻り値は「メソッドが処理の結果として外へ返す値」です。定義時に「戻り値の型」を決め、return で値を返します。値を返さない場合は型に void を指定します。戻り値は「関数型思考の中...
Java

Java | 基礎文法:引数

引数の全体像引数は「メソッドが外から受け取る入力」です。Java では、メソッド定義側で「型と名前」を宣言し、呼び出し側がその順番に値を渡します。戻り値は結果、引数は材料。設計の核心は「正しい型」「順...
Java

Java | 基礎文法:メソッド呼び出し

メソッド呼び出しの全体像メソッド呼び出しは「名前のついた処理を実行し、必要なら結果を受け取る」行為です。Java では「インスタンスメソッド(対象オブジェクトに対して呼ぶ)」と「static メソッド...
Java

Java | 基礎文法:メソッド定義

メソッド定義の全体像メソッドは「処理に名前をつけて再利用できるようにする単位」です。入力(引数)を受け取り、必要なら結果(戻り値)を返します。Java では「戻り値の型」「メソッド名」「引数の並び」「...
Java

Java | 基礎文法:for-each 文

for-each 文の全体像for-each(拡張 for 文)は「配列やコレクションの全要素を順に取り出して処理する」ための最短記法です。書式は for (要素の型 変数 : 配列またはIterab...
Java

Java | 基礎文法:2次元配列

2次元配列の全体像2次元配列は「配列の配列」です。行(外側)と列(内側)という2軸を持つ構造で、matrix のように2つの添字で要素へアクセスします。Java の2次元配列は「固定長の1次元配列を複...
Java

Java | 基礎文法:配列の長さ

配列の長さの基礎Java の配列は「固定長」です。作成時に決めた要素数は後から増減できません。長さはフィールド length で参照し、先頭の添字は 0、最後の添字は length - 1 です。配列...
Java

Java | 基礎文法:配列の要素アクセス

配列要素アクセスの全体像配列の要素アクセスは「添字(インデックス)で特定の位置の値を読み書きする」操作です。Java の配列は 0 始まりで、最後の要素の添字は length - 1。arr の形でア...
Java

Java | 基礎文法:配列の初期化

配列初期化の全体像配列の初期化は「配列オブジェクトを作る」と「要素に初期値を入れる」の2ステップです。Java の配列は長さが固定で、生成直後は型に応じたデフォルト値(数値は 0、boolean は ...
Java

Java | 基礎文法:配列の宣言

配列宣言の全体像配列は「同じ型の要素を並べて管理する入れ物」です。Java の配列は「長さが固定」「0 始まりの添字」「参照型(配列そのものはオブジェクト)」という3点が基本です。宣言は「型+角括弧+...
Java

Java | 基礎文法:無限ループ

無限ループの全体像無限ループは「終了条件が永遠に満たされず、ループが止まらない状態」です。Java では while (true) や for(;;) のように意図的に書くこともできますが、初心者が陥...
Java

Java | 基礎文法:do-while

do-while の全体像do-while は「本体を必ず1回実行してから条件を判定し、条件が true の間は繰り返す」構文です。通常の while と違い、最初の1回は無条件で実行されます。ユーザ...
Java

Java | 基礎文法:while 文

while 文の全体像while 文は「条件が true のあいだ、繰り返し続ける」ための基本構文です。回数が決まっていない繰り返し(入力が尽きるまで、成功するまで、条件が変わるまで)に向いています。...
Java

Java | 基礎文法:for 文

for 文の全体像for 文は「繰り返し」を最もコンパクトに書ける基本構文です。回数を決めて処理する、配列やリストを順番に処理する、といった場面で頻出します。伝統的な for (初期化; 条件; 更新...
Java

Java | 基礎文法:三項演算子

三項演算子の全体像三項演算子(条件演算子)は「条件に応じて値を一つ選ぶ」ための最短記法です。書式は 条件 ? 真のときの値 : 偽のときの値。if-else を1行で「値として」書けるのが強みで、変数...
Java

Java | 基礎文法:continue

continue の全体像continue は「現在の反復(1周)をスキップして、すぐ次の周回へ進む」ための制御文です。ループ本体の途中で「この条件なら残りは処理しなくていい」と判断したときに使います...
Java

Java | 基礎文法:break

break の全体像break は「いま実行中の繰り返し(ループ)や switch の処理を、途中でただちに打ち切る」ための制御文です。よく使う場面は「条件を満たした瞬間に探索終了」「エラー検知でそれ...
Java

Java | 基礎文法:switch 文

switch 文の全体像Java の switch 文は「ある値に応じて複数の分岐から一つを選んで実行する」ための構文です。if-else if 連鎖を簡潔に書けるのが特徴で、特に「定数や列挙値に応じ...
Java

Java | 基礎文法:else if

else if の全体像else if は「複数の条件を上から順に評価して、最初に一致した処理だけを実行する」ための構文です。if と else の間に挟み、分岐を段階的に重ねられます。評価は上から下...
Java

Java | 基礎文法:else 文

else 文の役割と基本else 文は、if の条件が false のときに実行する「もう一方の手」を明示します。分岐は「A ならこうする、そうでないなら別のこうする」という二者択一をシンプルに書ける...
Java

Java | 基礎文法:if 文

If 文の全体像Java の if 文は「条件が true のときだけ処理を実行する」ための最基本の制御構文です。条件は必ず boolean 型(true/false)で、C のように数値を真偽として...
Java

Java | 基礎文法:デクリメント

デクリメントの全体像デクリメントは「数値を 1 減らす」最短記法で、-- を使います。Java では「前置(--n)」と「後置(n--)」があり、式として使ったときの結果が異なります。対象は数値プリミ...
Java

Java | 基礎文法:インクリメント

インクリメントの全体像インクリメントは「数値を1つ増やす」ための最短記法です。++ を使うと、x = x + 1; を1文字で書けます。Java では「前置」と「後置」の2種類があり、式として使ったと...
Java

Java | 基礎文法:複合代入演算子

複合代入演算子の全体像複合代入演算子は「計算して、その結果を同じ変数に代入する」操作を一行で書ける記法です。x += y は x = x + y、x *= y は x = x * y と同義で、読みや...
Java

Java | 基礎文法:代入演算子

代入演算子の全体像代入演算子は「右側の式を評価して、その結果を左側の変数に入れる」ための基本ツールです。最も基本は =(代入)で、派生として「加算して代入」の += や「乗算して代入」の *= などの...
Java

Java | 基礎文法:論理演算子

論理演算子の全体像Java の論理演算子は条件を組み合わせて真偽を計算するための道具です。中心は短絡評価の &&(AND)と ||(OR)、反転の !(NOT)で、結果は必ず boolean(true...
Java

Java | 基礎文法:比較演算子

比較演算子の全体像Java の比較演算子は「式の真偽を判定して boolean を返す」ための基本ツールです。代表は ==、!=、<、>、<=、>= で、数値や文字の大小、同値性を判定します。重要なの...
Java

Java | 基礎文法:算術演算子

算術演算子の全体像Java の算術演算子は、足し算・引き算・掛け算・割り算・余り(剰余)を行うための基本ツールです。整数と小数で挙動が異なる点、型の自動拡張やオーバーフロー、ゼロ割りの結果など、初心者...
Java

Java | 基礎文法:真偽値

真偽値の全体像Java の真偽値は boolean 型で、取りうる値は true と false の二つだけです。C 言語のように 0 や非 0 を真偽として扱うことはできません。条件分岐(if)、繰...
Java

Java | 基礎文法:文字列リテラル

文字列リテラルの全体像Java の文字列リテラルは、ダブルクォートで囲んだ "..." の形でコードに直接書くテキストです。型は String クラスで、不変(immutable)なので作成後の内容は...
Java

Java | 基礎文法:数値リテラル

数値リテラルの全体像Java の「数値リテラル」は、コードに直接書く数値のことです。たとえば 42 や 3.14 のように書いたものがリテラルです。整数リテラルのデフォルト型は int、小数リテラルの...
Java

Java | 基礎文法:文字列型

文字列型の全体像Java の文字列は String クラスで表現され、テキストを扱うための最重要型です。String は不変(immutable)で、一度作った文字列の内容は変わりません。この不変性に...
Java

Java | 基礎文法:データ型(プリミティブ)

データ型(プリミティブ)の全体像Java のプリミティブ型は「値そのもの」を扱う最小単位のデータ型です。メモリ効率が良く、速度も速いので、数値計算やフラグ管理などの基礎に使われます。プリミティブは参照...
Java

Java | 基礎文法:変数の定義

変数の定義の全体像Java で「変数の定義」は、値にラベルを貼ってプログラム中で再利用できるようにする作業です。基本形は「型 名称 = 値;」で、型が先に来るのがポイントです。たとえば int age...
Java

Java | 基礎文法:コンパイルと実行

コンパイルと実行の全体像Java のプログラムは「ソースコード(.java)→ バイトコード(.class)→ JVM で実行」という三段構成で動きます。まず javac がソースをコンパイルして O...
Java

Java | 基礎文法:main メソッド

Main メソッドの役割Java の「プログラムの入口」は main メソッドです。JVM は指定されたクラスを読み込み、最初に public static void main(String[] ar...
Java

Java | 基礎文法:JDK と JRE

JDK と JRE の全体像Java を動かすには「実行環境」と「開発のための道具」が必要です。ここで登場するのが JRE(Java Runtime Environment)と JDK(Java De...
Java

Java | 基礎文法:Java の特徴

Java の特徴Java は「一度書けばどこでも動く(Write Once, Run Anywhere)」を目指して設計された言語です。プログラムはまず「バイトコード」にコンパイルされ、Java 仮想...
Java

Java 逆引き集 | ストリーム処理の設計ガイドライン(副作用禁止等) — 保守性向上

ねらいと基本原則ストリーム処理の保守性は「副作用を禁じる」「遅延評価を味方にする」「結合可能な集約を選ぶ」の三本柱で決まります。中間操作は純粋関数(入力だけに依存し、外部状態を変更しない)に徹し、副作...
Java

Java 逆引き集 | Stream を用いたデータ整形パイプライン設計 — パイプラインアーキテクチャ

ねらいと基本方針データ整形パイプラインは「取り込み → 正規化 → 検証 → 集約/変換 → 出力」の流れを、安全に、短く、遅延評価で組み立てる設計です。Stream を軸にすると、巨大データでもメモ...
Java

Java 逆引き集 | parallelStream のベンチマーク方法 — 実運用での検証

ねらいと前提parallelStream は「並列化すれば常に速い」魔法ではありません。効果が出る条件と落とし穴を理解し、順次と並列を同じ環境・同じ入力で比較するのが基本です。並列ストリームは For...
Java

Java 逆引き集 | Stream を使った CSV → オブジェクト変換 — ETL の簡潔化

ねらいと前提CSV をオブジェクトへ変換する ETL は「読み取り → クリーニング → 変換 → 検証 → 出力」の流れです。Stream を使えば、行を遅延で処理しながら宣言的に書けるため、巨大フ...
Java

Java 逆引き集 | lazy evaluation の理解(中間操作は遅延) — 無駄な処理回避

ねらいと前提Stream の中間操作(filter, map, sorted など)は「遅延評価」です。つまり、終端操作(collect, forEach, count など)が呼ばれるまで実行されま...
Java

Java 逆引き集 | Stream と Optional の良い組み合わせ — 値の有無ハンドリング

ねらいと前提値が「あるかもしれない/ないかもしれない」場面で、Optional は null 安全を保ちながら表現できます。Stream は「たくさんの値」を宣言的に流せます。この二つをうまく組み合わ...
Java

Java 逆引き集 | Stream API によるツリー/グラフ探索(再帰を使わないパターン) — 非再帰探索

ねらいと前提ツリー/グラフ探索は「親→子(隣接)」へ辿る処理です。再帰は直感的ですが、スタックあふれや制御の難しさが出ます。非再帰パターンでは、キュー(BFS)やスタック(DFS)を使って自分で「探索...
Java

Java 逆引き集 | reduce で複合オブジェクト集約 — ドメイン集計

ねらいと前提reduce は「ストリームの全要素をひとつの結果へ畳み込む」終端操作です。ドメイン集計では単なる数値の和ではなく、複数フィールドを持つ複合オブジェクト(件数・合計・最小・最大・補助メモな...
Java

Java 逆引き集 | ストリームでの並列グループ化(groupingByConcurrent) — 並列集計

ねらいと前提並列ストリームで「キーごとに集計」するなら、Collectors.groupingByConcurrent が最短で安全です。並列対応の ConcurrentHashMap を内部に使い、...
Java

Java 逆引き集 | キャッシング Collector(memoizing)パターン — 重い計算の最適化

目的と前提「重い計算」をストリームの中で何度も呼ぶと、CPUが燃え、待ち時間が伸び、並列化しても効果が出ません。キャッシング(memoizing)パターンは、同じ入力に対する結果を再利用して、計算を最...
Java

Java 逆引き集 | ストリームのデバッグ技(ログ出力・中間確認) — トラブルシュート

ねらいと前提「ストリームがどこでどう変わっているか」を素早く可視化できると、原因特定が一気に速くなります。中間確認の王道は peek と「小さく材質化(toList など)」の使い分けです。重要なのは...
Java

Java 逆引き集 | Stream と SQL の比較(いつ DB で処理すべきか) — 負荷分散判断

目的と前提「アプリ側で Stream に流すか、DB 側で SQL に任せるか」を正しく判断できると、性能・コスト・保守性が一気に安定します。根本の考え方はシンプルです。データ量が大きいほど「近いとこ...
Java

Java 逆引き集 | 組み合わせ生成(combinatorics via stream) — テストデータ作成

ねらいと基本指針テストデータを作るとき、組み合わせ(直積・順列・組合せ)を手早く生成できると検証の幅が一気に広がります。Java の Stream は「宣言的・短絡・遅延実行」が武器。巨大な結果を丸ご...
Java

Java 逆引き集 | Windowing(スライディング窓)パターン実装 — 時系列処理

目的と前提大量データを Stream で処理するとき、ボトルネックは「CPUよりメモリ」になりがちです。推定でも十分なので、どれだけメモリを消費するかを見積もり、材質化(toList/toMap)を最...
Java

Java 逆引き集 | Windowing(スライディング窓)パターン実装 — 時系列処理

目的と前提時系列処理で「連続 N 件」「直近 N 秒」のように、一定範囲のデータを滑らせながら集計するのがスライディング窓(windowing)です。Java 標準の Stream API には専用ウ...
Java

Java 逆引き集 | イテレータ→ストリームの変換(StreamSupport) — 外部API統合

目的と前提外部APIが Iterator(または Iterable)しか返さないときでも、Stream に変換すれば filter・map・collect などの強力な処理を宣言的に書けます。鍵になる...
Java

Java 逆引き集 | 並列 reduce の適切な設計(結合可能な演算) — 正しさの担保

目的と前提並列 reduce を正しく設計する鍵は「結合可能(結合律を満たす)な演算」と「適切な単位元(identity)」、そして「accumulator と combiner の整合性」です。並列...
Java

Java 逆引き集 | Stream サプライヤーパターン(Supplier を用いる) — 再生成可能性

目的と前提ストリームは「一度流したら終わり」の一回性を持ちます。同じパイプラインで複数の終端操作(count と toList など)をしたい、あるいは同じフィルタや変換を繰り返し適用したい場面では、...
Java

Java 逆引き集 | ストリームチェーンの分割と再利用 — 可読性/保守性

ねらいと基本原則ストリームは「1回流して終わり」の使い捨てモデルです。可読性と保守性を高めたいなら、再利用すべきはストリームそのものではなく「処理の定義(Predicate/Function/Coll...
Java

Java 逆引き集 | ストリームでのランダムアクセスの落とし穴 — パフォーマンス評価

概要と本質ストリームは「順次走査」に強く、「ランダムアクセス」に弱い仕組みです。配列や ArrayList のようなランダムアクセス向きのデータ構造でも、ストリームに乗せるとインデックス指定は基本的に...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – フォルダ内CSV連結テンプレ

ねらい:フォルダ内の複数CSVを「安全に連結」して、毎日の取り込みを一撃で自動化する実務では「毎日たくさんのCSVを同じ列構成で連結したい」「ファイルごとのヘッダをスキップしたい」「途中で列数が違うC...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – マスタ同期テンプレ

ねらい:マスタ同期を「差分抽出+安全反映」の型にして、常に最新状態を保つマスタ同期は「旧データ」と「新データ」を比べて、追加・削除・変更を正しく見極め、旧マスタを最新に更新する作業です。Excel関数...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品) – 差分抽出テンプレ

ねらい:差分抽出を「速く・正確・壊れない」型にして、毎日の更新チェックを自動化する差分抽出は「追加・削除・変更」を正しく切り分ける作業です。Excelの目視や関数だと抜けが出ますが、VBAなら“配列I...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品):重複処理テンプレ

ねらい:重複を「見つける・残す・消す・まとめる」を型にして、速く安全に処理する重複処理は現場で最も事故が多い領域です。VBAでは「配列I/O+Dictionary+正規化」で、検出・マーキング・除去・...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品):集計テンプレ

ねらい:配列I/O+Dictionaryで「速く・壊れない」集計を標準化する集計は「グループ化→集計→並べ替え→出力」の型にすれば、10万行級でも安定して一瞬で終わります。Excel関数の複雑な組み合...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品):JOIN高速テンプレ

ねらい:SQLのJOINを「配列I/O+Dictionary」で爆速・堅牢に再現するExcelでシート関数や手作業の結合は遅く、列変更に弱く、壊れやすい。VBAなら「片側を辞書化→配列で一括結合→一括...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品):XLOOKUP高速テンプレ

ねらい:XLOOKUP相当の機能を「配列I/O+辞書+二分探索」で爆速・堅牢に再現するExcelのXLOOKUPは柔軟ですが、式が増えると管理が重くなり、大量データでは再計算が遅くなります。VBAで「...
Excel VBA

Excel VBA 逆引き集 | 実務テンプレ完全版(超再利用部品):VLOOKUP高速テンプレ

ねらい:VLOOKUPの“遅い・不安定”を捨て、配列I/O+Dictionaryで爆速・堅牢にするVLOOKUPは大量行や複合キーで遅く、式管理が崩れがちです。実務では「片側を辞書化→一括照合→配列で...
Excel VBA

Excel VBA 逆引き集 | マニアック・高度技術:大規模テンプレライブラリ

ねらい:大規模でも「貼って動く」テンプレを共通ライブラリ化し、拡張しても壊れない運用へ規模が大きくなるほど、関数やモジュールの“型”が揃っているかが品質と速度を左右します。ここでは、大規模エクセルに必...
Excel VBA

Excel VBA 逆引き集 | ログ設計高度版

ねらい:Excelで「壊れない・追跡できる」高度ログ設計を標準化するログは“後から真実を再現するための証拠”です。大規模や自動化の現場では、単なるテキスト出力では足りません。レベル、タイムスタンプ、カ...
Excel VBA

Excel VBA 逆引き集 | テスト自動化

ねらい:Excelで「テスト自動化」を仕組みにして、毎回同じ品質を素早く確認する人手のチェックは抜けやすく、時間もかかります。VBAでもテスト枠を最初に入れておけば、ブックを開くだけで自動テストが走り...
Excel VBA

Excel VBA 逆引き集 | 品質保証(テスト)

ねらい:Excelで「品質保証(テスト)」を仕組みにして、拡張しても壊れないようにする手作業の確認は限界があります。Excel VBAでも「テストの型」を最初に入れておくと、機能追加や修正のたびに自動...
Excel VBA

Excel VBA 逆引き集 | 大規模エクセルの設計

ねらい:大規模エクセルを「壊れない・速い・分かりやすい」設計にする大規模エクセルは「機能が増えるほど遅く・壊れやすく・読みづらく」なりがちです。設計の型を先に決め、配列I/O、明確な責務分割、設定外出...
Excel VBA

Excel VBA 逆引き集 | 完全自動システム構築

ねらい:Excelだけで「完全自動」を構築し、毎日止まらず成果物を出し続ける人手を介さずに、定時起動→入力取り込み→検証・加工→集計・出力→ログ記録→通知まで流れる“自動ライン”をVBAで作ります。初...
Excel VBA

Excel VBA 逆引き集 | UUID生成

ねらい:VBAで安全・簡単にUUID(GUID)を生成し、キー・ID管理を楽にするUUIDは世界中で重複しない識別子です。マスタ行の一意キー、ログのトレーサビリティ、外部連携のIDとして実務で大活躍し...
Excel VBA

Excel VBA 逆引き集 | ハッシュ生成

ねらい:VBAで「ハッシュ生成」を道具化し、改ざん検知・差分・キー作成を一気に楽にするハッシュは、内容を固定長の指紋(ダイジェスト)に変換する技術です。ファイルやテキストが「同じか・変わったか」を一瞬...
Excel VBA

Excel VBA 逆引き集 | 暗号化

ねらい:VBAで“実務的な暗号化”を安全に使い分ける暗号化は「守る対象」によって最適解が変わります。ファイルを配布するならZIPのAESやExcelのパスワード保存、テキストや設定値を隠すならOS標準...
Excel VBA

Excel VBA 逆引き集 | 圧縮・展開

ねらい:VBAから「圧縮・展開」を安定運用し、配布やバックアップを一気に楽にする圧縮・展開は、成果物の配布、ログの保管、バックアップの軽量化などに直結します。Excel VBAでは「Windows標準...
Excel VBA

Excel VBA 逆引き集 | ソートアルゴリズム

ねらい:VBAで「速く・正しく」並べ替えるための実践テンプレートソートは、集計・重複排除・ランキング・差分の前処理として最重要です。Excelの並べ替え機能は便利ですが、大量データや複雑な条件では「配...
Excel VBA

Excel VBA 逆引き集 | 差分アルゴリズム実装

ねらい:Excelで「差分」を正確・高速に出す仕組みをVBAで持つ差分アルゴリズムは、ファイルや表の「何が変わったか」を正しく示し、レビューや監査、データ同期を楽にします。初心者でも扱えるように、貼っ...
Excel VBA

Excel VBA 逆引き集 | ハッシュマップ高速化

ねらい:VBAでハッシュマップ(Dictionary)を使い倒し、照合・集計・検索を爆速化するハッシュマップはキーから値へ即座にアクセスできるデータ構造です。VBAでは Scripting.Dicti...
Excel VBA

Excel VBA 逆引き集 | Trie構造

ねらい:VBAでTrie(トライ)を実装し、前方一致検索やオートコンプリートを高速化するTrieは文字列の「共有された接頭辞」を一度だけ保持する木構造です。Excelでの大量ワード検索、商品コードの前...
Excel VBA

Excel VBA 逆引き集 | 正規表現の高度利用

ねらい:VBAで正規表現を「高度利用」し、複雑な文字処理を一瞬で片付けるExcel VBAは標準の文字列関数(Left, Mid, InStrなど)でも処理できますが、複雑なパターン抽出や置換は正規表...
Excel VBA

Excel VBA 逆引き集 | 高速ファイル走査

ねらい:VBAで「高速ファイル走査」を実現し、数十万件でも固まらず完走する大量ファイルの走査は、再帰やループの書き方次第で極端に遅くなります。Excelでは「Dirの連続呼び出し+配列バッファ+一括書...
Excel VBA

Excel VBA 逆引き集 | WMI 呼び出し

ねらい:VBAからWMIを呼び出し、PCの「見えない情報」を一気に可視化するWMI(Windows Management Instrumentation)は、OS・ハードウェア・ネットワーク・プロセス...
Excel VBA

Excel VBA 逆引き集 | 疑似並列

ねらい:VBAで「疑似並列」を作り、複数処理を同時進行の体感で回すVBAはシングルスレッドですが、処理を小さなチャンクに分割して短時間で区切り、次回実行を予約(Application.OnTime)し...
Excel VBA

Excel VBA 逆引き集 | マルチスレッド風実装

ねらい:VBAを「協調的に分割」して、マルチスレッド風に同時進行させるVBAはシングルスレッドですが、処理を小さなチャンクに分けて短時間で区切り、次の呼び出しを予約(Application.OnTim...
Excel VBA

Excel VBA 逆引き集 | システム情報取得

ねらい:VBAで「システム情報」を素早く集め、トラブル切り分けを速くするシステム情報取得は、Excelの不具合や速度低下の原因を見極める最短ルートです。OS・Excel/Officeのビット数・バージ...
Excel VBA

Excel VBA 逆引き集 | 画面キャプチャ

ねらい:Excelで「画面キャプチャ」を安定して撮り、PNGに保存する画面キャプチャは、報告画像の作成、エビデンス保存、手順書の作成などに直結します。VBAでは「範囲やグラフを画像としてコピー→PNG...
Excel VBA

Excel VBA 逆引き集 | クリップボード操作

ねらい:VBAでクリップボードを自在に操り、貼り付け・共有をスマートにするクリップボード操作は「選択範囲をコピーして他アプリへ」「文字列やHTMLを生成して貼り付け」「画像を取り込んで保存」など、現場...
Excel VBA

Excel VBA 逆引き集 | Win32 API呼び出し

ねらい:VBAからWin32 APIを呼んで「できない」を減らすWin32 APIは、Excel標準では届かない領域(高精度タイマー、ウィンドウ制御、ネイティブのファイル操作、システム情報)に手を伸ば...
Excel VBA

Excel VBA 逆引き集 | Shell拡張

ねらい:VBAから「WindowsのShell」を使いこなし、外部処理を安全に操るShell拡張は、VBAからWindowsのコマンド、エクスプローラ、既定アプリ、ZIP、ショートカットなど“OS標準...
Excel VBA

Excel VBA 逆引き集 | Excel以外のアプリ制御

ねらい:Excelの外へ手を伸ばし、他アプリを「安全に・確実に」動かすExcel VBAから他アプリを制御する方法は大きく3系統です。COMオートメーション(Word/PowerPoint/Outlo...
Excel VBA

Excel VBA 逆引き集 | Power Automate連携

ねらい:VBAとPower Automateをつないで「人手いらずの定時運用」を実現するPower Automateはクラウド側の「起動・連携・通知」を担い、VBAはローカルExcelの「高速前処理・...
Excel VBA

Excel VBA 逆引き集 | Office Scripts連動

ねらい:VBAとOffice Scriptsを連動させ、ローカルとクラウドを使い分けるVBAはデスクトップExcelでの高速・柔軟な自動化、Office ScriptsはExcel on the we...
Excel VBA

Excel VBA 逆引き集 | COM Add-in

ねらい:COM アドインで「Excel常駐の拡張」を作り、現場で確実に動かすCOM アドインは、Excelのプロセスに常駐して機能を提供する拡張です。XLAM(VBAアドイン)が「ブックに近い」存在な...
Excel VBA

Excel VBA 逆引き集 | Excel Add-in化

ねらい:ブック依存を卒業し、どこでも使える「Excelアドイン(XLAM)」へアドイン化は「よく使うVBAを、どのブックでも同じ操作で使えるようにする」ための最短ルートです。機能を共通ライブラリ化し、...
Excel VBA

Excel VBA 逆引き集 | Excel外からVBA呼び出し

ねらい:Excelの外からVBAを呼び出し、ヘッドレスで安全に実務を回す「Excel外からVBA呼び出し」は、ユーザー操作なしに処理を起動するための基礎です。代表手段はCOMオートメーション(VBSc...
Python

Python | OOP:クラス単位のテスト

概要(クラス単位のテストは「1つの責務を独立して検証する」)クラス単位のテストは、クラスの公開メソッドと外部との約束を中心に「入れたらこう返る」を独立して確かめる手法です。狙いは、仕様のズレや副作用の...
Python

Python | OOP:コード分割

概要(コード分割は「役割ごとに小さな部品へ分け、見通しと変更を楽にする」)コード分割は、1つの巨大ファイルや巨大クラスに詰め込まず、責務ごとにモジュール・パッケージ・クラスへ分ける設計です。目的は読み...
Python

Python | OOP:単一責任の原則

概要(単一責任の原則は「そのクラスを変える理由をひとつに絞る」)単一責任の原則(Single Responsibility Principle, SRP)は、「クラス(モジュール)が変更される理由はひ...
Python

Python | OOP:デザインパターン(Factory)

概要(Factoryは「作り方をひとまとめにして差し替える窓口」)Factory(ファクトリ)パターンは、オブジェクトの“生成方法”を呼び手から切り離し、共通の窓口にまとめる設計です。呼び手は「何を作...
Python

Python | OOP:デザインパターン(Strategy)

概要(Strategyは「アルゴリズムを入れ替える差し替え口」を用意する設計)Strategy(ストラテジー)パターンは、処理のアルゴリズムを独立した“戦略オブジェクト”に切り出し、実行時に差し替えら...
Python

Python | OOP:コンポジション

概要(コンポジションは「小さな部品を組み合わせて振る舞いを作る」設計)コンポジション(合成)は、継承に頼らず「部品(オブジェクト)を持つ」ことで機能を組み立てる設計です。車が“エンジンを持つ”、クライ...
Python

Python | OOP:Mixin

概要(Mixinは「小さな能力」を後から混ぜ込むための設計)Mixin(ミックスイン)は、クラスに“特定の機能だけ”を薄く追加するための補助クラスです。単体で使う前提の「完全な親クラス」ではなく、既存...
Python

Python | OOP:メソッドチェーン

概要(メソッドチェーンは「操作をつなげて一気に書く」設計)メソッドチェーンは、複数のメソッド呼び出しをドットで連ねて、処理の流れをそのまま一行で表現する書き方です。ポイントは“次のメソッドを呼べる値を...
Python

Python | OOP:依存性注入(簡単版)

概要(依存性注入は「必要な相手を外から渡す」だけでコードが劇的に扱いやすくなる)依存性注入(DI)は、クラスが必要とする相手(例:メール送信、DB接続、HTTPクライアント)を自分の中で作らず、外から...
Python

Python | OOP:インターフェース的設計

概要(「インターフェース的設計」は“共通の窓口”で差し替え可能にすること)インターフェースは、異なる実装を“同じやり方で使えるようにする共通の約束”です。PythonにはJavaのようなinterfa...
Python

Python | OOP:抽象クラス(ABC)

概要(抽象クラスは「必ず実装してほしい共通の約束」を形にする設計図)抽象クラス(ABC: Abstract Base Class)は、直接インスタンス化できない「設計図」です。サブクラスが必ず実装すべ...
Python

Python | OOP:yield

概要(yieldは「一つ返して一時停止、次に再開」する魔法のスイッチ)yieldは、関数を“ジェネレーター”に変えるキーワードです。yieldに到達すると値を一つ返して処理を一時停止し、次に呼ばれたと...
Python

Python | OOP:ジェネレーター

概要(ジェネレーターは「必要な分だけ、順に値を生む」仕組み)ジェネレーターは、yieldを使って「次の値」を一つずつ返し、呼び出しのたびに前回の続きから再開できる関数(またはオブジェクト)です。全デー...
Python

Python | OOP:イテレーター

概要(イテレーターは「次を返して尽きたら止まる“反復器”」)イテレーターは「要素を一つずつ順番に返す」オブジェクトです。イテレーターは必ずiterとnextを持ち、nextは次の要素を返し、もう要素が...
Python

Python | OOP:next

概要(nextは「次の要素」を返し、尽きたらStopIterationで終了する)nextは“イテレータ”が持つ特別メソッドで、呼ぶたびに次の要素を返します。要素がもうないときはStopIterati...
Python

Python | OOP:iter

概要(iterは「forで回せるオブジェクト」を作る入口)iterは、そのクラスを「イテラブル(forで回せるもの)」にする特別メソッドです。戻り値は“イテレータ”で、イテレータは次の要素を返すnex...
Python

Python | OOP:getitem

概要(getitemは「objやスライス」を使えるようにする特別メソッド)getitemは、obj や obj のようなインデックス・スライスアクセスを可能にする入口です。シーケンスっぽいクラス(li...
Python

Python | OOP:len

概要(lenは「そのオブジェクトの“サイズ”を即座に返す」ための特別メソッド)lenは、len(obj)が呼ばれたときに使われる“サイズ取得”の入口です。数や件数など「直感的に数えられるもの」を、非負...
Python

Python | OOP:repr

概要(reprは「開発者向けの公式な文字列表現」)reprは、オブジェクトの“正確で曖昧さのない”文字列表現を返す特別メソッドです。REPLやデバッグ、ログでの診断に使われ、可能ならその文字列からオブ...
Python

Python | OOP:str

概要(strは「人に見せる文字列表現」を返す特別メソッド)strは、オブジェクトをprintしたり、str()に渡したときの“人向けの文字列表現”を定義します。これを実装しておくと、ログやUI、コンソ...
Python

Python | OOP:staticmethod

概要(staticmethodは「クラスに属するけれど、状態に依存しない純粋な関数」)@staticmethodは、self(インスタンス)やcls(クラス)に触れない“補助関数”をクラスの中にまとめ...
Python

Python | OOP:クラスメソッド

概要(クラスメソッドは「クラスに紐づく操作」—工場・設定・系統別挙動に効く)@classmethodは、第1引数にインスタンスではなくクラス自身(cls)を受け取るメソッドです。インスタンスの状態には...
Python

Python | OOP:setter

概要(setterは「値の更新に検証を挟む安全な入口」)setterは、オブジェクトの属性を更新するときにルール(検証・整合性維持)を必ず通過させるための仕組みです。Pythonでは@property...
Python

Python | OOP:プロパティ(@property)

概要(@propertyは「属性のように使える安全な窓口」)@propertyは、見た目は属性アクセスなのに、裏側で関数(メソッド)が実行される仕組みです。値の取得(getter)、設定(setter...
Python

Python | OOP:private 的記述

概要(Pythonの“private”的記述は「強制」ではなく“合図”と“窓口設計”)PythonにはJavaのprivateのような強制的なアクセス修飾子はありません。代わりに「内部用」を示す命名規...
Python

Python | OOP:カプセル化

概要(カプセル化は「中身を守り、外からは使いやすい窓口だけ見せる」設計)カプセル化は、オブジェクトの内部状態(属性)と内部処理(ヘルパーメソッド)を隠し、外部には安全な操作方法だけを提供する考え方です...
スポンサーリンク