[ジャワ] Javaでのアクセスのレベル – Javaでの編集
データアクセスを保護するために外部からの自由を防ぎます, キーワード指定された範囲へのアクセスをクラスのプロパティとメソッドを使用してオブジェクト指向プログラミング. Javaは、オブジェクトの構成要素へのアクセスを制御するために、いくつかの相補体を使用して後で :
- パブリック: パブリックコンポーネント, 外部から自由にアクセス.
- 保護されました: 組成物は、保護されています, アクセス制限.
- デフォルト (何も書きません): パッケージ内のアクセス.
- プライベート: クラス内でのアクセス.
1. パブリックメンバー
原材料は、クラスがすべてのプログラムと外部オーディエンスと共有することができ、公共エリアです. パブリックメンバーは、教室の内側と外側からアクセスすることができます:
例: それは構成されています 2 次のパッケージ:
私達のファイルの内容は以下のとおりであります:
* コンポーネントGoiAと一緒にパッケージClassA1.javaファイル (varA1変数とメソッドmethodA1) 公開されています (パブリック):
package GoiA; // goi ten la GoiA public class ClassA1 { public int varA1 = 5; // bien cong khai ten la varA public void methodA1(){ // phuong thuc cong khai methodA1 System.out.println("methodA1 trong ClassA1 la public"); } }
* パッケージ内ClassA2.javaファイルはGoiAを含み 1 使用methodA2方法はClassA1の組成物であり、.
package GoiA; // goi GoiA public class ClassA2 { // ClassA2 su dung bien va phuong thuc cua ClassA1 void methodA2(){ // phuong thuc methodA2 goi cac thanh phan cua ClassA1 ClassA1 a1 = new ClassA1(); // tao doi tuong a1 thuoc lop ClassA1 a1.methodA1(); // goi phuong thuc methodA1 System.out.println("Bien varA1 = " + a1.varA1); // in bien varA1 } }
* またGoiAにあるファイルClassA3.java継承し、ClassA1のコンポーネントを使用します
package GoiA; public class ClassA3 extends ClassA1{ // ClassA3 ke thua ClassA1 void methodA3(){ // phuong thuc methodA3 goi methodA1() methodA1(); } }
スイッチパックはGoiBを持っています 2 ファイル:
* ClassA2ファイルなどClassA1のClassB1.javaファイルとも呼ばれるコンポーネントがClassB1がClassA1パッケージに私たちはそれをインポートする必要があるため異なっています.
package GoiB; import GoiA.ClassA1; // import ClassA1 de su dung public class ClassB1 { void methodB1(){ // phuong thuc methodB1 goi cac thanh phan cua ClassA1 ClassA1 a1 = new ClassA1(); // tao doi tuong a1 thuoc lop ClassA1 a1.methodA1(); // goi phuong thuc methodA1 System.out.println("Bien varA1 = " + a1.varA1); // in bien varA1 } }
* ClassB2.javaファイルもClassA1ようレガシーClassA3 ClassA1を継承しますが、中にClassA1をインポートする必要があります.
package GoiB; import GoiA.ClassA1; public class ClassB2 extends ClassA1{ // ClassB2 ke thua ClassA1 void methodB2(){ // phuong thuc methodB2 goi methodA1() methodA1(); } }
したがって、私たちはどこにでもClassA1の開放性は、我々は公共の補数を使用した場合ていることがわかります.
我々は、迅速なコメント次の図を描くことができます:
2. コンポーネントの保護
それを含むパッケージ内のすべてのクラスおよびすべてのクラスはそれを継承します (他のパッケージからのクラス継承を含みます) それにアクセスする必要があります.
また、VDと上記のように, 我々は持っています 2 パッケージはGoiAであり、そのクラスGoiBと共に, ただ、次のコンポーネントで保護ClassA1を変更 (CAC ClassA2, ClassA3, ClassB1, ClassB2遺跡):
*flie ClassA1.java
package GoiA; // goi ten la GoiA public class ClassA1 { protected int varA1 = 5; // bien protected ten la varA protected void methodA1(){ // phuong thuc protected methodA1 System.out.println("methodA1 trong ClassA1 la public"); } }
一方、グレードのClassA2, ClassA3はまだそれはまたClassA1でGoiAを知られているようClassA1の構成要素にアクセスします, 他のためのアクセスもClassB2まだそれがパッケージClassA1を継承. しかしClassB1アクセスできません.
*flie ClassB1.java
package GoiB; import GoiA.ClassA1; // import ClassA1 de su dung public class ClassB1 { void methodB1(){ // phuong thuc methodB1 goi cac thanh phan cua ClassA1 ClassA1 a1 = new ClassA1(); a1.methodA1(); // loi truy nhap System.out.println("Bien varA1 = " + a1.varA1); // loi truy nhap } }
不良ClassB1
コメント:
3. デフォルトのコンポーネント
デフォルトのコンポーネント (何宣言されていません) それが唯一の最も内側の層を可能にします 1 パッケージへのアクセス (場合であっても、レガシー). すべてのアクセスまたは他のパッケージから継承されていません.
同様の, デフォルトClassA1の組成上記の例で, それはClassA1と同じパッケージに含まれていないため、一方ClassB1とClassB2が故障しています.
* ClassA1.javaファイル
package GoiA; // goi ten la GoiA public class ClassA1 { int varA1 = 5; // bien mac dinh ten la varA void methodA1(){ // phuong thuc mac dinh methodA1 System.out.println("methodA1 trong ClassA1 la public"); } }
*flie ClassB1.java
package GoiB; import GoiA.ClassA1; // import ClassA1 de su dung public class ClassB1 { void methodB1(){ // phuong thuc methodB1 goi cac thanh phan cua ClassA1 ClassA1 a1 = new ClassA1(); a1.methodA1(); // loi truy nhap System.out.println("Bien varA1 = " + a1.varA1); // loi truy nhap } }
*flie ClassB2.java
package GoiB; import GoiA.ClassA1; public class ClassB2 extends ClassA1{ // ClassB2 ke thua ClassA1 void methodB2(){ // phuong thuc methodB2 goi methodA1() methodA1(); // loi truy nhap } }
ClassB1, ClassB2は、我々はそれがClassA1だけでなく、使用できないコンポーネントを拡張して宣言することができますが、ClassB2は欠陥があるClassA1.
コメント:
4. プライベートメンバ
プライベートコンポーネントは、最も密接に守られています, 同じのオブジェクトのみ 1 新しいクラスにアクセス可能, アクセスを確保、あるいは同じクラスの他のクラスから継承します 1 もアクセス可能なパッケージ.
*flie ClassA1.java
package GoiA; // goi ten la GoiA public class ClassA1 { private int varA1 = 5; // bien private ten la varA private void methodA1(){ // phuong thuc private methodA1 System.out.println("methodA1 trong ClassA1 la public"); } void methodA2(){ methodA1(); // goi phuong thuc methodA1 System.out.println("Bien varA1 = " + varA1); // in bien varA1 } }
我々は唯一の方法を参照してくださいmethodA2() クラスClassA1にアクセスすることができ、民間セクターと同じです, でもClassA2, GoiAパッケージに沿って配置ClassA3もアクセスすることはできません.
コメント:
したがって、私たちは見ることができる公共部門のアクセシビリティ, 保護されました, デフォルト, プライバシー上昇と同義プライベート下降機能. 我々は、後に少額を持つことができます:
を参照して投稿:
– 教科書Javaオブジェクト指向プログラミング – ドアン·ヴァン·バン
– 教科書Javaオブジェクト指向プログラミング – トランディンケ
– naynhoanhthichem.blogspot.com
そして、いくつかの教科書, その他のサイト.
Cám ơn bro đã có giải thích rất trực quan 🙂
定期的にブログをご覧ください^^
Nguyenvanquan7826ラット干し草のカム, 弁置換は、これまで、これらの属性は、肺をマングました. この記事を読んで、今絶対に味 100%. があります…明らかな.
cách giải thích của anh rất dễ hiểu
ありがとう.
どうもありがとうございました. Bài viết cực kỳ dễ hiểu.Thậm chí chỉ cần xem hình ảnh minh họa dưới dòng “コメント:” cũng đã hiểu hết và nhớ dai rồi.
ありがとう. Hãy giới thiệu cho bạn bè nhé.
あなたはクラスからの直接の質問はあなたのDCà機能を継承し、自分自身を呼び出すことはありません. 例:パッケージGoiA;
パブリッククラスClassA3はClassA1を拡張します{
ボイドmethodA3(){
methodA1();
}
}
私はいつもmethodA1を呼び出さない理由についてクラスで(); しかし、この方法でそれを必要とします (ここmehodA3です ) だからあなたの他?
あなたを呼び出します… 私たちは、スーパークラスのメソッドを呼び出すことができます意味します, しかし、呼び出したい、あなたにそれを与える必要があります 1 hàm hoặc phải dùng một đối tượng để gọi.
cho em hỏi phương thức A trong package 1 em để chế độ public . vậy ở package 2 em có gọi phương thức A được không ạ
[はい.
どうもありがとうございました. Bài viết rất rõ ràng, 理解できます. Chúc anh đạt được nhiều thành công và có nhiều bài viết hay như thế này nữa 🙂
ありがとう.
Bài viết của anh rất hay!
ありがとう
Bài viết rất hay và chi tiết. ありがとう!
ありがとう, hãy chia sẻ cho bạn bè nhé
cảm ơn bạn rất nhiều , page bạn giải thích còn dễ hiểu hơn là trên lớp dạy đấy
Cảm ơn bạn 🙂 Chia sẻ cho bạn bè nhé.
bài này hay quá anh ơi :D,anh cho em xin link bài giảng try catch luôn nha,em hơi thắc mắc khi nghe giáo viên giảng.Thầy cô nói try catch khi mình ko chắc code đúng nên dùng,mà em nghĩ nếu biết nó ko đúng thì sửa lại luôn chứ :))
hay hiểu 100% ありがとう
Chia sẻ cho bạn bè và ghé blog thường xuyên nhé bạn.