JAVA中访问保护

1.Java中的访问保护

一个类只能又两种访问级别:默认的和公共的。Public可以被任何其他代码访问,默认访问控制符仅可以被相同包中的其他代码访问

 

被声明为public的内容可以被任何地方访问。被声明为private的成员不能被类外看到。没有明确的访问声明,对于子类或该包中的其他类是可见的,这是默认访问。

 

import语局来引入特定的类甚至整个包,类就可以直呼其名来使用

测试代码

package p1;

 

public class Demo

{

 

public static void main(String[]args)

{

//TODO Auto-generated method stub

 

Protectionob1 =new Protection();

Derivedob2 =new Derived();//继承Protection,先执行Protection的构造函数,再执行自己的

SamePackageob3 =new SamePackage();

}

 

}

package p1;

 

public class Derivedextends Protection

{

Derived()

{

System.out.println("derived constructor");

System.out.println("n = " +n);

// class only

// System.out.println("n_pri = " + n_pri);

System.out.println("n_pro = " +n_pro);

System.out.println("n_pub = " +n_pub);

}

}

package p1;

 

public class Protection

{

int n = 1;

private int n_pri = 2;

protected int n_pro = 3;

public int n_pub = 4;

 

public Protection()

{

System.out.println("base constructor");

System.out.println("n = " +n);

System.out.println("n_pri = " +n_pri);

System.out.println("n_pro = " +n_pro);

System.out.println("n_pub = " +n_pub);

}

}

package p1;

 

public class SamePackage

{

SamePackage()

{

Protectionp =new Protection();

System.out.println("same package constructor");

System.out.println("n = " +p.n);

// class only

// System.out.println("n_pri = " + p.n_pri);

System.out.println("n_pro = " +p.n_pro);

System.out.println("n_pub = " +p.n_pub);

}

}

package p2;

 

public class Demo

{

 

public static void main(String[]args)

{

//TODO Auto-generated method stub

Protection2ob1 =new Protection2();

OtherPackageob2 =new OtherPackage();

}

 

}

package p2;

 

public class OtherPackage

{

OtherPackage() {

p1.Protectionp =new p1.Protection();

System.out.println("other package constructor");

// class or package only

// System.out.println("n = " + p.n);

// class only

// System.out.println("n_pri = " + p.n_pri);

// class, subclass or package only

// System.out.println("n_pro = " + p.n_pro);

System.out.println("n_pub = " +p.n_pub);

}

}

package p2;

 

public class Protection2extends p1.Protection

{

Protection2()

{

System.out.println("derived other package constructor");

// class or package only

// System.out.println("n = " + n);

// class only

// System.out.println("n_pri = " + n_pri);

System.out.println("n_pro = " +n_pro);

System.out.println("n_pub = " +n_pub);

}

}

package test;

 

class Box

{

double width;

double height;

double depth;

 

public Box(double w,double h,double d)

{

//TODO Auto-generated constructor stub

width =w;

height =h;

depth =d;

}

 

public String toString()

{

return "Dimensions are " +width +" by " +depth +" by " +height +".";

}

}

 

public class test1

{

 

public static void main(String[]args)

{

//TODO Auto-generated method stub

Boxb =new Box(10,12,14);

Strings ="Box b: " +b;// concatenate Box object

System.out.println(b);// convert Box to string

System.out.println(s);

}

 

}

猜你喜欢

转载自blog.csdn.net/zl1107604962/article/details/52489975