検索
ホームページJava&#&チュートリアルJavaにおけるClassクラスの役割を詳しく解説

JavaにおけるClassクラスの役割を詳しく解説

Oct 17, 2017 am 09:31 AM
classjava詳しい説明

この記事では主に Java の Class クラスの役割と深い理解を紹介します。この記事がこの部分の理解に役立つことを願っています。必要な友人はそれを参照してください。

Java の Class クラスの詳細な理解

プログラムの実行中、Java ランタイム システムは、すべてのオブジェクトに対してランタイムと呼ばれる型識別子を常に維持します。この情報は、各オブジェクトが属するクラスを追跡します。 JVM は実行時情報を使用して、適切な実行メソッドを選択します。この情報を保持するクラスは Class と呼ばれます。混乱を招きやすいかもしれませんし、階級を考えてしまいやすいかもしれません。ただし、この 2 つは相互に関係はありません。クラスはクラスを説明するキーワードにすぎません。 Class は実行時の情報を格納するクラスです。

何ができるの? Class クラスは、プログラムの実行時にクラスを分析するのに役立ちます。端的に言えば、クラス内の値を取得することです。たぶん、すぐに反省を思いついたのかもしれません、はい!クラスは通常、クラスまたはクラスのクラス名をクラスに提供し、クラスは属性/メソッド/修飾子/コンストラクター/クラス名などの多くの情報を提供できるため、リフレクションと組み合わせて使用​​されます。その後、さらに反省を進めていきます。とはいえ、まずはClassクラスの内容と使い方を簡単に理解しておきましょう!

このクラスには情報が多すぎるため、これを使用して特定のクラスのフィールド/メソッドおよびコンストラクターを取得できます。よく使用されるメソッドをいくつか示します:


 String str = new String();
 Class cl = str.getClass();

クラスを通じて Class オブジェクトを取得し、このタイプの情報を取得できます。 Class オブジェクトを完全なクラス名で取得することもできます。


 public static void main(String[] args) throws Exception {
 // 以String.class为例
 String str = new String();
 Class cl = str.getClass();
 /**
  * 获取包名+类名<br>
  * java.lang.String
  */
 cl.getName();
 /**
  * 只获取类名 - String
  */
 cl.getSimpleName();
 /**
  * 获取数组的Class对象<br>
  * 因为所有的Java类都继承自Object,数组也一样.所以数组本身也是个Class, 得到数组的Class自然也可以转回数组.
  */
 cl.getComponentType();
 /**
  * 返回构造器数组,包括超类的公有成员.
  */
 cl.getConstructors();
 /**
  * 返回方法数组,包括超类的公有成员.
  */
 cl.getMethods();
 /**
  * 返回域数组,包括超类的公有成员.
  */
 cl.getFields();
 /**
  * 返回全部构造器数组,无论是public/private还是protected,不包括超类的成员.
  */
 cl.getDeclaredConstructors();
 /**
  * 返回全部域数组,无论是public/private还是protected,不包括超类的成员.
  */
 cl.getDeclaredFields();
 /**
  * 返回全部方法数组,无论是public/private还是protected,不包括超类的成员.
  */
 cl.getDeclaredMethods();
 /**
  * 获取类前的修饰符
  */
 cl.getModifiers();
 }

このクラスの Class オブジェクトを使用して、このクラスのオブジェクトを作成できます。最も便利で速い方法は、newInstance() を呼び出すことです。デフォルトでは、引数なしのコンストラクターを呼び出してオブジェクトを返します。


Class cl = Class.forName("java.lang.String");

以下は、Constructor を使用してコンストラクターを取得してオブジェクトを作成する方法です:


String str = (String)(Class.forName("java.lang.String").newInstance());

クラスは情報クラスなので、それほど難しくありません。実行時にクラスを追跡し、クラスに関するすべての情報を把握します。

以上がJavaにおけるClassクラスの役割を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール