アクセス許可シンボル:
(1) public:
メンバーの場合: 同じパッケージ内であっても、別のパッケージ内であっても、他のクラスはそれらにアクセスできます。
クラスの場合: 同じことが当てはまります。
(2)friendly:
メンバーに対して、私はいつもこう言います: クラスのメンバーに権限の変更がない場合、彼らはデフォルトのパッケージ アクセス権限を持ちます。これは、Friendly で表されます。Friendly はキーワードではないことに注意してください。 Java はこちら これは私が好きな表現方法です。同じパッケージ内の他のクラスはそれにアクセスできますが、パッケージの外にはアクセスできません。パッケージを使用しない同じフォルダー内のクラスの場合、Java はまずこれらのクラスをディレクトリ
に属するデフォルトのパッケージとして自動的に表示し、クラス内のフレンドリーなメンバーは相互に呼び出すことができます。たとえば、次の 2 つのクラスは同じフォルダー内の 2 つのファイルにありますが、パッケージは導入されていませんが、同じデフォルト パッケージに属しています。
class Sundae{ //以下两个方法缺省为friendly Sundae(){} Void f() {System.out.println(“Sundae.f()”); } public class IceCream{ public static void main(String[] args){ Sundae x = new Sundae(); x.f(); } }
クラスの場合: 同じパッケージ内のクラスが使用できます。つまり、クラスはパブリックまたはフレンドリーとしてのみ宣言できます。
(3)プライベート:メンバー向け: メンバーが所属するクラス内でのみアクセスできます。
class Sundae{ private Sundae(){}//只能在Sundae class中被调用 Sundae(int i) {} static Sundae makASundae() { return new Sundae(); } } public class IceCream{ public static void main(String[] args){ // Sundae class中构造函数Sundae()是private, // 所以不能用它进行初始化 //Sundae x = new Sundae(); Sundae y = new Sundae(1);//Sundae(int)是friendly,可以在此调用 Sundae z = Sundae.makASundae(); } }
クラスの場合: クラスをプライベートとして宣言することはできません。
(4)protected:
クラス、データメンバー、コンストラクター、メソッドメンバーはすべてデフォルトの権限を使用できます。つまり、キーワードを記述しません。デフォルトの権限は同じパッケージ権限です。同じパッケージ権限を持つ要素は、それらが定義されているクラス内および同じパッケージ内のクラス内でのみ呼び出すことができます。
例: package c05.local;
import pack1.Cookie; //注意:在这里ChocolateChip继承了类Cookie,按道理bite()方法也在 //ChocolateChip中,可以用x.bite直接调用,但是不可以的,因为类ChocolateChip //和Cookie类不在一个包中,各自具有包访问权限,为了能够使用x.bite()必须要把 //Cookie方法的访问权限换成public或者protected,但是一旦换成public所有的人就 //可以访问了,这样达不到隐私的要求,所以设置成protected最好,既可以顺利访问,也可以 //避免外面的类调用,保护好隐私的作用 public class ChocolateChip extends Cookie { public ChocolateChip() { System.out.println("ChocolateChip constructor"); } public static void main(String[] args) { ChocolateChip x = new ChocolateChip(); x.bite(); // Can't access bite } } ///:~
package pack1; public class Cookie { public Cookie() { System.out.println("Cookie constructor"); } protected void bite(){System.out.println("bite");} }
クラスの場合: クラスを保護されたものとして宣言することはできません
クラス権限の変更については、以下に詳しい説明があります:
クラスのアクセス権限:
public : によってアクセスできますすべてのクラス。デフォルト: デフォルトはフレンドリーと呼ばれます。ただし、Java 言語にはフレンドリー修飾子はありません。この名前は C++ から来ています。デフォルトのアクセス許可は、パッケージレベルのアクセス許可です。アクセス権修飾子を書かずにクラスを作成した場合、デフォルトのアクセス権では、たとえこのクラスがインスタンス化できたとしても、同じパッケージ内のクラスにアクセスできます (もちろん、このクラスがインスタンス化機能を持たない場合は、そのクラスのインスタンス化機能がただし、たとえば、このクラスはパブリック コンストラクターを提供しません)。
注:
1. 各コンパイル単位 (クラス ファイル) は、パブリック クラスを 1 つだけ持つことができます 2. パブリック クラスの名前 (大文字と小文字を含む) は、クラス ファイルと同じ名前にする必要があります。
3. パブリッククラスはクラスファイル(*.java)内に存在する必要はありません。 customers顧客(おそらくこのクラスを呼び出すクラス)はこれに悩まされており、しばらくすると、元のアプローチを完全に変更し、古いバージョンを完全に放棄し、新しいバージョンに置き換える可能性があります。
4. クラスをプライベートにしたり、保護したりすることはできません。
5. 特定のクラスのオブジェクトを生成したくない場合は、そのクラスのすべてのコンストラクターをプライベートに設定できます。ただし、この方法でも、このクラスのオブジェクトを生成できます。つまり、クラスの静的メンバー (プロパティとメソッド) が生成できます。
First.java:
package Number; import Test.*; public class Frist extends Test { protected String s1 = "你好"; public static void main( String[] args) { String s2 = "java"; //System.out.println(s1); System.out.println(s2); Frist t = new Frist(); System.out.println(t.s); t.show(); return; } } Test.java: package Test; public class Test { protected String s = "hello test"; //可以被同包中的类访问以及子类访问,该子类可以是与包Test不同 public void show() { Test1 t1 = new Test1(); return; } } class Test1 { Test1() { Test t = new Test(); System.out.println(t.s); } }
出力:
java hello test hello test
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 中国語版
中国語版、とても使いやすい

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

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
