ホームページ Java &#&チュートリアル クラスとオブジェクトのマスター: 初心者向けのステップバイステップ

クラスとオブジェクトのマスター: 初心者向けのステップバイステップ

Jan 04, 2025 am 11:15 AM

Mastering Classes and Objects: Step-by-Step for Beginners

クラスとオブジェクトの概要

プログラミングにおいて、クラスは設計図のようなものであり、オブジェクトはその設計図から建てられる家のようなものです。クラスは、オブジェクトの構造と動作を定義する計画であると考えてください。一方、オブジェクトは、メモリ内に存在するクラスの特定のインスタンスです。クラスとオブジェクトを使用すると、コードを効果的に整理して再利用できます。

例:

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? 会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? Apr 19, 2025 pm 04:51 PM

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

名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? 名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? Apr 19, 2025 pm 11:30 PM

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

MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? Apr 19, 2025 pm 06:21 PM

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

Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Apr 19, 2025 pm 11:45 PM

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

エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? Apr 19, 2025 pm 11:42 PM

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

Javaオブジェクトを配列に安全に変換する方法は? Javaオブジェクトを配列に安全に変換する方法は? Apr 19, 2025 pm 11:33 PM

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

Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Apr 19, 2025 pm 11:36 PM

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

eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? Apr 19, 2025 pm 11:27 PM

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

See all articles