多くの初心者は静的メソッドの使い方を理解できないかもしれません。ここで私の理解を説明します:
静的メソッドの呼び出しにはクラスオブジェクトの作成は必要ありません
オブジェクトを作成する必要がないため、静的メソッドでは this キーワードを使用しないでください
静的メソッドでは、静的メンバー変数と静的メソッドのみを呼び出すことができます。通常のメソッドはオブジェクトを作成して呼び出す必要があり、静的メソッドと競合するためです。メソッド
静的メンバー変数は、通常のメソッドと、クラス名.静的メソッドの形式で直接呼び出すことができる静的メソッドで呼び出すことができます
静的コードブロックは、クラスがロードされるときに実行され、一度だけ実行されます
理論は終わったので、実際の例を見てみましょう:
class Person{ static{ System.out.println("person static"); } public Person(String str) { System.out.println("person "+str); } } public class Test { Person person = new Person("Test"); public Test() { System.out.println("test constructor"); } static{ System.out.println("test static 1"); } public static void main(String[] args) { new MyClass(); } static{ System.out.println("test static 2"); } } class MyClass extends Test { Person person = new Person("MyClass"); static{ System.out.println("myclass static"); } public MyClass() { System.out.println("myclass constructor"); } }
まず出力を推測し、次にそれを比較して何が間違っているかを確認し、理解を深めます
test static 1 test static 2 myclass static person static person Test test constructor person MyClass myclass constructor
まず Test クラスをロードします。 test static 1、test static 2
mainメソッドには、新しいMyClassが追加されます。このとき、MyClassクラスがロードされます。 MyClass クラスにも静的コード ブロックがあり、出力は myclass static
-
です。MyClass クラスは Test クラスを継承し、Test クラスがロードされている場合、静的コード ブロック内のコンテンツはロードが完了すると、Test クラスの実行が開始されます。このとき、Person クラスはまだロードされていません。静的なコード ブロックがある場合、
person static -
を出力して Person のコンストラクターを実行し、
person Test -
を出力して Test の実行を続行し、メイン メソッド new MyClass() に入ります。ただし、MyClass は Test から継承します。クラスの場合、最初に Test クラス コンストラクターを実行し、
test コンストラクター -
を出力し、引き続き MyClass、Person person = new Person("MyClass") を実行し、Person クラス コンストラクターを実行し、
person MyClass を出力します。 MyClassのコンストラクタメソッド、出力
実行完了
- これらを踏まえて、以下の実行シーケンスをまとめました。 > サブクラス構築方法 コンストラクタと新規オブジェクトが同時に存在する場合、新規オブジェクトのコンストラクタが先に実行されます。 (このとき、ループのネストが発生してメモリオーバーフローを起こさないように注意してください)
Javaの親クラスとサブクラスのロード順序を簡単に解説
Javaの継承、サブクラスが継承するかどうか親クラスのコンストラクター
以上がJavaでの静的キーワード、親クラスとサブクラスのロードと実行順序の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

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