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

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 までご連絡ください。
JVMパフォーマンスと他の言語JVMパフォーマンスと他の言語May 14, 2025 am 12:16 AM

jvm'sperformanceiscompetitivewitherruntimes、sped、safety、andproductivityの提供

Javaプラットフォームの独立性:使用の例Javaプラットフォームの独立性:使用の例May 14, 2025 am 12:14 AM

javaachievesplatformedentenceTheThejavavirtualMachine(JVM)、avainwithcodetorunonanyplatformwithajvm.1)codescompiledintobytecode、notmachine-specificcode.2)

JVMアーキテクチャ:Java Virtual Machineに深く飛び込みますJVMアーキテクチャ:Java Virtual Machineに深く飛び込みますMay 14, 2025 am 12:12 AM

thejvmisanabstractcomputingMachineCrucialForrunningJavaProgramsDuetoitsPlatForm-IndopentInterChitecture.Itincludes:1)ClassLoaderForloadingClasses、2)Runtimedataareaforforforatastorage、3)executionEngineWithinterter、Jitcompiler、およびGarbagecolfecolfecolfececolfecolfer

JVM:JVMはOSに関連していますか?JVM:JVMはOSに関連していますか?May 14, 2025 am 12:11 AM

jvmhasacloserelationshiptheosasittrantesjavabytecodecodecodecodecodecodecodecodecodecodecodecodecodetructions、manageSmemory、およびhandlesgarbagecollection.thisrelationshipallowsjavatorunonvariousosenvirnments、Butalsedentsはspeedifediferentjvmbeviorhiorsandosendisfredediferentjvmbehbehioorysando

Java:一度書く、どこでも実行(wora) - プラットフォームの独立に深く潜るJava:一度書く、どこでも実行(wora) - プラットフォームの独立に深く潜るMay 14, 2025 am 12:05 AM

Javaの実装「Write and、Run Everywherewhere」はBytecodeにコンパイルされ、Java仮想マシン(JVM)で実行されます。 1)Javaコードを書き、それをByteCodeにコンパイルします。 2)JVMがインストールされたプラットフォームでByteCodeが実行されます。 3)Javaネイティブインターフェイス(JNI)を使用して、プラットフォーム固有の機能を処理します。 JVMの一貫性やプラットフォーム固有のライブラリの使用などの課題にもかかわらず、Woraは開発効率と展開の柔軟性を大幅に向上させます。

Javaプラットフォームの独立性:異なるOSとの互換性Javaプラットフォームの独立性:異なるOSとの互換性May 13, 2025 am 12:11 AM

javaachievesplatformentenceTheTheTheJavavirtualMachine(JVM)、CodetorunondifferentoperatingSystemswithOutModification.thejvmcompilesjavacodeplatform-IndopentedbyTecodeを承認することを許可します

Javaをまだ強力にしている機能Javaをまだ強力にしている機能May 13, 2025 am 12:05 AM

javaispowerfulfulduetoitsplatformindepentence、object-orientednature、richstandardlibrary、performancecapability、andstrongsecurityfeatures.1)platformendependenceallowseplicationStorunonaydevicesupportingjava.2)オブジェクト指向のプログラマン型

トップJava機能:開発者向けの包括的なガイドトップJava機能:開発者向けの包括的なガイドMay 13, 2025 am 12:04 AM

上位のJava関数には、次のものが含まれます。1)オブジェクト指向プログラミング、サポートポリ型、コードの柔軟性と保守性の向上。 2)例外処理メカニズム、トライキャッチ式ブロックによるコードの堅牢性の向上。 3)ゴミ収集、メモリ管理の簡素化。 4)ジェネリック、タイプの安全性の向上。 5)コードをより簡潔で表現力豊かにするためのAMBDAの表現と機能的なプログラミング。 6)最適化されたデータ構造とアルゴリズムを提供するリッチ標準ライブラリ。

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール