JAvaアクセス修飾子public protected friendly private用法概要
JAvaアクセス修飾子public protected friendly private用法まとめ
まず宣言:javaではfriendlyという修飾子には明示的な宣言はありません.メンバー変数やメソッドの前に修飾子は何も使いません.デフォルトはfriendlyです.
筋道がはっきりしているために、3つの異なる状況に分けてまとめます.
アクセス権修飾子修飾メンバー変数とメソッド
public:このメンバー変数とメソッドが共有されており、任意の場合にアクセスできることを示します.
protected:同じパッケージにアクセスする必要があります.(簡単な話ですが、例を見ればわかります)
BとAが同じパッケージにあるとすると、
特別説明:同じパッケージの中で何がありますか?
答:パッケージでパッケージ化されたclassは、同じパッケージに呼ばれています.(わかりませんが、例を挙げます)
eg:JDKのsrcjavaioでは、多くのjavaクラスが見られます.最初のソースコードはpackage java.ioです.
パッケージを使用してパッケージ化されていない場合、同じディレクトリの下にあるクラスも同じパッケージと見なされます.
friendly:この場合、protectedと同じです.違いは2番目と3番目の場合です.
BとAが同じパッケージにあるとすると、
private:このクラスでのみアクセスできます.
PS:実際、重要なデータをprivateに修飾し、publicの関数を書いてアクセスすることは、OOPのパッケージ特性を体現し、OOPのセキュリティの体現である.
二 アクセス権修飾子修飾クラス
1,protectedとprivateでクラスを修飾することはできません.
2.friendlyで修飾されたクラスをフレンドリークラスと呼び、別のクラスでフレンドリークラスを使用してオブジェクトを作成する場合は、同じパッケージにあることを保証します.
三 アクセス権修飾子と継承
ここでのアクセス修飾子とは、メンバー変数とメソッドを修飾することを意味します.次の2つのケースに分けられます.
1、子と親は同じパッケージにあります
この場合privateとして宣言された変数とメソッドのみが継承(アクセス)できません.
したがって、アクセス権修飾子の権限は、高いものから低いものまでpublicです. ,protected ,friendly, private.
まず宣言:javaではfriendlyという修飾子には明示的な宣言はありません.メンバー変数やメソッドの前に修飾子は何も使いません.デフォルトはfriendlyです.
筋道がはっきりしているために、3つの異なる状況に分けてまとめます.
アクセス権修飾子修飾メンバー変数とメソッド
public:このメンバー変数とメソッドが共有されており、任意の場合にアクセスできることを示します.
protected:同じパッケージにアクセスする必要があります.(簡単な話ですが、例を見ればわかります)
eg:class A
{
protected int weight ;
protected int f( int a,int b )
{
//
}
}
BとAが同じパッケージにあるとすると、
class B
{
void g()
{
A a=new A();
A.weight=100;//
A.f(3,4); //
}
}
特別説明:同じパッケージの中で何がありますか?
答:パッケージでパッケージ化されたclassは、同じパッケージに呼ばれています.(わかりませんが、例を挙げます)
eg:JDKのsrcjavaioでは、多くのjavaクラスが見られます.最初のソースコードはpackage java.ioです.
パッケージを使用してパッケージ化されていない場合、同じディレクトリの下にあるクラスも同じパッケージと見なされます.
friendly:この場合、protectedと同じです.違いは2番目と3番目の場合です.
eg: class A
{
int weight ;
int f( int a,int b )
{
//
}
}
BとAが同じパッケージにあるとすると、
class B
{
void g()
{
A a=new A();
A.weight=100;//
A.f(3,4); //
}
}
private:このクラスでのみアクセスできます.
eg: class Test
{
private int money;
Test()
{
money=2000;
}
private int getMoney()
{
return money;
}
public static void main(String args[])
{
Test te=new Test();
te.money=3000; //
int m=te.getMoney(); //
System.out.println("money="+m);
}
}
PS:実際、重要なデータをprivateに修飾し、publicの関数を書いてアクセスすることは、OOPのパッケージ特性を体現し、OOPのセキュリティの体現である.
二 アクセス権修飾子修飾クラス
1,protectedとprivateでクラスを修飾することはできません.
2.friendlyで修飾されたクラスをフレンドリークラスと呼び、別のクラスでフレンドリークラスを使用してオブジェクトを作成する場合は、同じパッケージにあることを保証します.
三 アクセス権修飾子と継承
ここでのアクセス修飾子とは、メンバー変数とメソッドを修飾することを意味します.次の2つのケースに分けられます.
1、子と親は同じパッケージにあります
この場合privateとして宣言された変数とメソッドのみが継承(アクセス)できません.
eg:
class Father
{
private int money ;
int weight=100;
}
class Son extends Father
{
viod f()
{
money=10000;//
weight=100; //
}
}
2,
private friendly ( ), protected public 。
eg:
Father.java
package com.aaa
public class Father
{
int height ;
protected int money=120;
public int weight;
protected int getMoney()
{
return money;
}
void setMoney(int newMoney)
{
money=newMoney;
}
}
Son.java
package com.bbb
import com.aaa.Father;
public class Son extends Father
{
void f()
{
money=10000;//
//height=170;// ,height friendly
System.out.println(money);// 10000
//setMoney(300); //
int number=getMoney(); //
System.out.println(number);// 10000
}
public static void main(String args[])
{
Son sss=new Son();
sss.f();
}
}
したがって、アクセス権修飾子の権限は、高いものから低いものまでpublicです. ,protected ,friendly, private.