Javaにおけるオブジェクト指向プログラミングの仕組みと活用

オブジェクト指向プログラミング(OOP)の概要 オブジェクト指向プログラミングは、ソフトウェアシステムを「オブジェクト」という自律的な単位の集合としてモデル化する設計思想です。現実世界の事物や概念をオブジェクトとして表現し、それらの相互作用によってシステム全体を構築します。JavaにおいてOOPを理解する上で、中核となる3つの要素「カプセル化」、「継承」、 ...

7月19日 00:47 投稿

Kotlinのオブジェクト指向プログラミング:クラス、継承、プロパティ、インターフェース

クラス クラスの宣言は以下のようになります。 // クラス宣言 class User { /*...*/ } // 空のクラス class Empty // プライマリコンストラクタ class User constructor(name: String) { /*...*/ } // キーワードを省略したプライマリコンストラクタ class User(name: String) { /*...*/ } // プライマリコンストラクタのロジックはinitブロックに記述します // 複数のinit ...

7月8日 23:57 投稿

Javaにおける内部クラスによる外部クラスの継承

Javaにおける内部クラスによる外部クラスの継承 Javaプログラミングにおいて、内部クラスとは他のクラス内部に定義されるクラスを指します。内部クラスは外部クラスの非公開メンバーやメソッドに直接アクセスできるだけでなく、外部クラスを継承することも可能です。内部クラスと外部クラスの関係は通常、包含関係であり、外部クラスが内部クラスのコンテナとして機能しま ...

7月6日 21:52 投稿

TypeScriptの基礎:インターフェースの活用方法

インターフェース オブジェクトの構造と振る舞いを記述する抽象的な型です。具体的な実装を提供せず、継承可能(インターフェースはクラスと同様に継承できます)、オブジェクトの型チェックにも利用でき、複数のクラスで実装可能です。 オプションプロパティ インターフェース内のプロパティは必須ではありません。非必須プロパティ名の後に"?"を追加するだけで ...

7月5日 16:15 投稿

Javaにおけるポリモーフィズムの理解と実践

ポリモーフィズム(多態性)とは ポリモーフィズムは、オブジェクト指向プログラミングの核心概念の一つであり、同じインタフェースや基底クラスを通じて、異なるサブクラスの振る舞いを柔軟に扱うことを可能にします。つまり、「一つの型で複数の形を表現できる」仕組みです。 この特性により、コードの再利用性が高まり、拡張性のある設計が実現できます。基本的な実現 ...

7月3日 23:33 投稿

Java継承と抽象クラスの実践的学習

第一部分:理論知識の学習 第五章:継承と多様性 第五章の学習内容は主に七つのモジュールに分かれています: クラス、スーパークラス、サブクラス a. クラス継承の形式:class 新しいクラス名 extends 既存クラス名 b. 既存のクラスは:スーパークラス(superclass)、基底クラス(base class)または親クラス(parent class)と呼ばれます 新しいクラスは:サブクラス ...

7月1日 16:44 投稿

継承とポリモーフィズムの実践的な理解

インスタンスの型確認 以下のJavaコードはinstanceof演算子を使用して、オブジェクトの型を確認する方法を示しています。 public class InstanceCheckDemo { public static void main(String[] args) { Object obj = "Java"; System.out.println("Object型か:" + (obj instanceof Object)); // true System.out.println("String型か:" + (o ...

6月30日 17:59 投稿

new演算子、継承、スタックとヒープ、シリアライズコピーとシャローコピー

new演算子の内部仕組み new演算子はオブジェクトをインスタンス化し、新しいオブジェクトを返します。コンストラクタ関数内のthisはインスタンスに参照されます。 new演算子の内部プロトタイプ var p1 = {} で新規オブジェクトを作成し、メモリ空間を確保します。 Person.call(p1) を使用して、Person関数内のthisをp1に変更します。 p1.__proto__ == Person.prototype ...

6月26日 17:55 投稿

C++における継承と多態性の実装例

ロボットペットの多態性デモ pets.hpp #pragma once #include <string> #include <iostream> class RoboPet { public: RoboPet(const std::string& name); virtual std::string vocalize() = 0; std::string get_name() const; private: std::string pet_name; }; RoboPet::RoboPet(const std::string& name) : pet_name{name} {} ...

6月25日 18:05 投稿

Javaクラスの初期化順序

継承なしの場合: 1. 実行順序 静的メンバ変数 静的コードブロック 通常のメンバ変数 通常のコードブロック コンストラクタ 2. 要約: 静的 -> 通常 変数 -> コードブロック -> コンストラクタ コンストラクタは最後に実行される 3. サンプルコード: public class Parent { private static String name = "zct" ...

6月19日 16:12 投稿