目次
1. クラスとは
2. Java クラスと C 言語の構造の類似点と相違点
3. クラスとクラスのインスタンス化
クラスの宣言
ホームページ Java &#&チュートリアル Java クラスとオブジェクトの分析例

Java クラスとオブジェクトの分析例

Apr 21, 2023 am 11:01 AM
java

1. クラスとは

クラス (クラス) は、オブジェクト指向プログラミング (OOP、オブジェクト指向プログラミング) における情報のカプセル化の基礎です。クラスはユーザー定義の参照データ型であり、クラス型とも呼ばれます。各クラスには、データの説明と、データを操作したりメッセージを送信したりするための一連の関数が含まれています。クラスのインスタンスはオブジェクトと呼ばれます。

クラスの本質は、byte、short、int、char に似た参照データ型です。 、long、float、double などの基本的なデータ型との違いは、複雑なデータ型であることです。その本質はデータではなくデータ型であるため、メモリ上に存在せず、直接操作することはできず、オブジェクトとしてインスタンス化された場合にのみ操作可能になります。

2. Java クラスと C 言語の構造の類似点と相違点

Java のクラスは実際には C 言語の構造と非常によく似ていることがわかりますが、それらの違いは何でしょうか?

1. パックされたオブジェクトは異なります

C 言語の構造はデータのパッケージ化です。全体的な処理を容易にするために、概念的に関連したデータをまとめてパックします。外部の世界はこれらのデータを自由に読み書きできます

Java オブジェクトはデータまたは責任をパッケージ化できます

2. 保存場所は異なります

C 言語構造は次のようになりますスタックまたはヒープに保存される

Java オブジェクトはヒープ上にのみ存在できます

3. クラスとクラスのインスタンス化

クラス メンバーには次のものを含めることができます: フィールド、メソッド、コード ブロック、内部クラスとインターフェイスなど。

クラスはテンプレートであり、クラスのインスタンス化はこのテンプレートを通じてオブジェクトを作成することであるため、明確に理解できます (テンプレートは無数のオブジェクトを作成できます)。

クラスの宣言は、実際には新しい型、参照型をカスタマイズすることと同じです。

クラスの宣言

基本形式:

class クラス名{
フィールド (メンバー変数/プロパティ);
メソッド (メンバー メソッド);
}

ここでのクラスはクラスのキーワードです

要素クラス内: 属性 (クラス内、メソッド外)

クラス内のメソッド: メンバー メソッド

次の例:

public class Dog {
    public String name;
    public int age;
    public void bark() {
        System.out.println("汪汪");
    }
}
ログイン後にコピー

Passed 上記のコードは、 name と age の 2 つの属性を持つ Dog クラス。この動作は

属性の前の public はアクセス修飾子です

メンバー メソッドの前に static## を追加しないでください

#インスタンス化されたオブジェクト、メンバーはデフォルト値のルールに従います

デフォルト値のルール: 0 の変形

Special:

参照タイプ: null

boolean :false 参照。メンバ変数は、メンバ変数にアクセスするために使用されます。通常のメソッドは、オブジェクト参照を通じて呼び出されます。メソッド名は、

静的プロパティ(静的メンバ変数)の呼び出しに使用されます。静的変更を追加します

次のコード:

class Dog {
    public String name;
    public int age;
    public boolean are;
    public static int a;
    public void bark() {
        System.out.println("汪汪");
    }
}
 
public class Practice {
    public static void main(String[] args) {
        Dog dog = new Dog();   // 实例化一个对象
        System.out.println(dog.are);   // 通过.来访问
    }
}
ログイン後にコピー

注: 静的プロパティは引き続きデフォルト値の規則に従います

アクセス方法:

静的メンバー変数はオブジェクトに属しているのではなく、クラスに属しているため、オブジェクトの参照を通じてアクセスすることはできません。メンバー変数ではなくクラス名であることを知っておく必要があります。静的プロパティはアクセスされ、静的メソッドにはクラス名を通じてアクセスします。

次のように:

class Dog {
    public String name;
    public int age;
    public boolean are;
    public static int a;    // 静态属性
    public void bark() {
        System.out.println("汪汪");
    }
}
ログイン後にコピー

エラー例:

System.out.println(Dog.a);
ログイン後にコピー
ログイン後にコピー

クラスの静的プロパティにアクセスするためにオブジェクトは必要ありません。直接アクセスできます

注:

静的プロパティはメソッド領域に存在します

新しいオブジェクトの数に関係なく、静的プロパティのコピーは 1 つだけあります。

  • 静的メソッド値内で非静的データ メンバーにアクセスすることはできません。また、非静的メソッドを呼び出すこともできません

  • 静的メソッドはオブジェクトに依存しない

  • 4. コンストラクター メソッド

    まず考えてみたいのは、オブジェクトがどのようにして来るのかということです。存在するのか?
  • オブジェクトにメモリを割り当てます

適切なコンストラクターを呼び出します

  • new を使用してオブジェクトをインスタンス化するとき、初期化操作を完了するためにコンストラクターが自動的に呼び出されます。

    コンストラクターを作成します
  • メソッド名はクラス名と同じである必要があります

戻り値の型宣言はありません

  • 各クラスには少なくとも 1 つのコンストラクターがあります (定義されていない場合、システムはパラメーターなしのコンストラクターを自動的に生成します)

  • 次のコード:

    System.out.println(Dog.a);
    ログイン後にコピー
    ログイン後にコピー
    このコードには Dog クラスがあり、2 つのコンストラクターがあり、1 つはパラメーターなし、もう 1 つはパラメーターありです。new を通じてオブジェクトを作成するときは、次を使用します。パラメータを使用して構築した後、出力された結果を確認できます
  • ##つまり、実際にどの構築メソッドが呼び出されるかは、new に渡されたパラメータに依存することがわかります
  • 注:

    クラスにコンストラクターがない場合、システムはパラメーターのないコンストラクターを自動的に追加しますが、コンストラクターを自分で作成する場合、このパラメーターのないコンストラクターは補完されません。パラメータのないコンストラクタを使用する必要があるため、手動で記述する必要があります

    Java クラスとオブジェクトの分析例

    構築メソッドはオーバーロードもサポートしています

      this
    • this の役割

    • 多くの場合、これが現在のオブジェクトであると誤って考える人がいますが、実際にはこれは現在のオブジェクトへの参照です
    • 為什麼this不是對象,而是引用:

      我們要知道,建構方法是用來建立物件的,那麼在呼叫建構方法建立物件的過程中,這個物件還是不存在的,哪來的物件之說

      因此我們可以透過this去存取屬性、成員方法、建構方法(呼叫建構方法時,只能放在第一行,只能在建構方法裡面寫,只能用一次)

    以上がJava クラスとオブジェクトの分析例の詳細内容です。詳細については、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Feb 07, 2025 pm 12:11 PM

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。

See all articles