クラスとオブジェクトのマスター: 初心者向けのステップバイステップ
クラスとオブジェクトの概要
プログラミングにおいて、クラスは設計図のようなものであり、オブジェクトはその設計図から建てられる家のようなものです。クラスは、オブジェクトの構造と動作を定義する計画であると考えてください。一方、オブジェクトは、メモリ内に存在するクラスの特定のインスタンスです。クラスとオブジェクトを使用すると、コードを効果的に整理して再利用できます。
例:
class Car { String color; String model; void start() { System.out.println("Car is starting"); } } public class Main { public static void main(String[] args) { Car myCar = new Car(); // Object created myCar.color = "Red"; myCar.start(); } }
ここで、Car _class はブループリントであり、_myCar はそのブループリントから作成されたオブジェクトです。
クラスのコンポーネント
クラスは複数のコンポーネントで構成されます。それらを詳しく見てみましょう:
クラス名
クラス名はクラスを識別するために使用されます。
という名前の後に続く必要があります
規則:
- 大文字で始めてください。
- キャメルケースを使用します (例: Car、StudentDetails)。
- 頭字語や略語は避けてください。
属性 (フィールド)
属性は、オブジェクトのプロパティを表すクラス内の変数です。
class Car { String color; // Attribute String model; // Attribute }
メソッド
メソッドは、オブジェクトの動作を定義するクラス内の関数です。たとえば、次のメソッドで車を始動させることができます。
void start() { System.out.println("Car is starting"); }
戻り値の型
メソッドは値 (int、long、string など) を返すことができます。 void キーワード は、メソッドが何も返さない場合に使用されます。void displayInfo() { System.out.println("This is a car."); }ログイン後にコピーログイン後にコピー
アクセス修飾子
アクセス修飾子は、クラス メンバーの可視性を制御します。詳細については、アクセス修飾子に関する私のブログをご覧ください。
コンストラクター
コンストラクターは、オブジェクトを初期化するために使用される特別なメソッドです。詳細については、これをお読みください。
オブジェクトのコンポーネント
オブジェクトには 3 つの主要コンポーネントがあります:
- 状態
オブジェクトの状態はその属性によって定義されます。たとえば、車の色とモデルはその状態を定義します。
- 行動
オブジェクトの動作は、そのメソッドによって定義されます。たとえば、車の始動と停止は動作です。
- アイデンティティ
各オブジェクトには一意の ID があり、これはシステム内の参照アドレスまたはメモリ アドレスです。
例:
class Car { String color; void displayInfo() { System.out.println("Car color: " + color); } } public class Main { public static void main(String[] args) { Car myCar = new Car(); myCar.color = "Blue"; // State myCar.displayInfo(); // Behavior } }
クラスの特別なコンポーネント
- 静的フィールドとメソッド
静的フィールドとメソッドは、特定のオブジェクトではなくクラスに属します。例:
class MathUtils { static int square(int x) { return x * x; } }
使用法:
int result = MathUtils.square(5); // No object needed
簡単に言うと、クラスで静的メソッドを使用するためにオブジェクトを初期化する必要はないということです。
- 最終クラスと変数
final キーワードは、変数を定数にする、メソッドのオーバーライドを防ぐ、または継承を制限するために使用されます。このキーワードは 3 つのコンテキストで使用できます:
- 最終変数 =>定常接触変数を作成します。
- 最終メソッド =>メソッドのオーバーロードを防ぐため。
- 最終クラス =>相続を防ぎます。
class Car { String color; String model; void start() { System.out.println("Car is starting"); } } public class Main { public static void main(String[] args) { Car myCar = new Car(); // Object created myCar.color = "Red"; myCar.start(); } }
上級クラスの概念
オブジェクトクラス
Java のオブジェクト クラスは java.lang パッケージに存在します。 Java のすべてのクラスは、直接的または間接的に Object クラスから派生します。クラスが他のクラスを拡張しない場合、そのクラスは Java オブジェクト クラスの直接の子クラスであり、別のクラスを拡張する場合、そのクラスは間接的に派生します。次のような便利なメソッドが提供されます:
toString(): オブジェクトを文字列に変換します。
equals(): 2 つのオブジェクトが等しいかどうかを確認します。
ビルダークラス
ビルダー クラスは、特にオブジェクトに多くの属性がある場合に、オブジェクトを段階的に作成するのに役立ちます。
class Car { String color; // Attribute String model; // Attribute }
使用法:
void start() { System.out.println("Car is starting"); }
シングルトンクラス
シングルトン クラスでは、プログラムの実行中にクラスのインスタンスが 1 つだけ作成されることが保証されます。これは、構成マネージャーやデータベース接続などの単一の共有リソースが必要な場合によく使用されます。
シングルトン クラスを作成する主な手順は次のとおりです。
他のクラスがコンストラクターをインスタンス化できないように、コンストラクターをプライベートにします。
インスタンスへのアクセスを提供する静的メソッドを作成します。
静的フィールドを使用して、クラスの単一インスタンスを保持します。
例:
void displayInfo() { System.out.println("This is a car."); }
説明:
コンストラクターはプライベートであるため、new.
を使用して Singleton クラスのオブジェクトを作成することはできません。
getInstance() メソッドは、インスタンスが null かどうかをチェックします。存在する場合、新しいインスタンスが作成されます。それ以外の場合は、既存のインスタンスが返されます。
これにより、getInstance() が何回呼び出されても、作成されるオブジェクトは 1 つだけになります。
内蔵パッケージ
パッケージは、関連するクラスをグループ化します。 Java の一般的な組み込みパッケージには次のものがあります。
java.util: ArrayList、HashMap などのユーティリティ クラスが含まれます。
java.io: 入力および出力操作のためのクラスを提供します。
java.lang: String、Math などのコア クラスが含まれます。
例:
class Car { String color; void displayInfo() { System.out.println("Car color: " + color); } } public class Main { public static void main(String[] args) { Car myCar = new Car(); myCar.color = "Blue"; // State myCar.displayInfo(); // Behavior } }
クラスとオブジェクトの実際のアプリケーション
学生管理: 名前、年齢などの属性と、enroll()などのメソッドを備えた学生クラス。
銀行システム: 残高などの属性と、deposit()、withdraw()などのメソッドを持つBankAccountクラス。
結論
クラスとオブジェクトは、オブジェクト指向プログラミングの基本的な構成要素です。これらは、コードを整理し、再利用可能にし、ソフトウェア内で現実世界のエンティティを表現するのに役立ちます。コンポーネントを理解し、小規模なプロジェクトで練習することで、オブジェクト指向プログラミングを習得するための強力な基盤を築くことができます。コーディングを楽しんでください!
以上がクラスとオブジェクトのマスター: 初心者向けのステップバイステップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

多くのアプリケーションシナリオでソートを実装するために名前を数値に変換するソリューションでは、ユーザーはグループ、特に1つでソートする必要がある場合があります...

システムドッキングでのフィールドマッピング処理は、システムドッキングを実行する際に難しい問題に遭遇することがよくあります。システムのインターフェイスフィールドを効果的にマッピングする方法A ...

intellijideaultimatiateバージョンを使用してスプリングを開始します...

データベース操作にMyBatis-Plusまたはその他のORMフレームワークを使用する場合、エンティティクラスの属性名に基づいてクエリ条件を構築する必要があることがよくあります。あなたが毎回手動で...

Javaオブジェクトと配列の変換:リスクの詳細な議論と鋳造タイプ変換の正しい方法多くのJava初心者は、オブジェクトのアレイへの変換に遭遇します...

Redisキャッシュソリューションは、製品ランキングリストの要件をどのように実現しますか?開発プロセス中に、多くの場合、ランキングの要件に対処する必要があります。

eコマースプラットフォーム上のSKUおよびSPUテーブルの設計の詳細な説明この記事では、eコマースプラットフォームでのSKUとSPUのデータベース設計の問題、特にユーザー定義の販売を扱う方法について説明します。
