package
、
jar
可以将很多class文件打包到其他机器运行
操作
jar.后面就是路径
package import 命令行
java访问权限
package test1;
public class A {
private int v1 = 1;
int v2 = 2; //实际上是default
protected int v3 = 3;
public int v4 = 4;
private void showV1()
{
System.out.println(v1);
}
void showV2()
{
System.out.println(v2);
}
protected void showV3()
{
System.out.println(v3);
}
public void showV4()
{
System.out.println(v4);
}
}
package test1;
//B and A are in the same package B和A在同一个报下面
public class B {
public void show()
{
//B is not subclass of A B并不是A的子类 所以B无法直接访问A的成员变量和方法
// System.out.println(v1); //error
// System.out.println(v2); //error
// System.out.println(v3); //error
// System.out.println(v4); //error
// showV1(); //error
// showV2(); //error
// showV3(); //error
// showV4(); //error
A obj = new A();
//System.out.println(obj.v1); error, private//A类的private 成员不能对外分享 但是default /protected / public 的成员可以被同一个包的其他类访问
System.out.println(obj.v2);
System.out.println(obj.v3);
System.out.println(obj.v4);
//obj.showV1(); error, private
obj.showV2();
obj.showV3();
obj.showV4();
}
}
package test1;
//C is a subclass of A, and in the same package of A. c类继承于A类 因此 c是A的子类 而且 c类和a类在同一个包中 子类继承父类所有东西 但是不可以直接访问private成员
public class C extends A {
public void show()
{
//System.out.println(v1); error, private//这里是c类以A类的子类身份来访问A类成员
System.out.println(v2);
System.out.println(v3);
System.out.println(v4);
//showV1(); error, private
showV2();
showV3();
showV4();
A obj = new A(); //c类以A类同包平等的身份来访问A类的成员
//System.out.println(obj.v1); error, private 新建A的对象,通过对象访问A类的内容 这个时候 B类和A类是同胞平等的关系 A类的private的成员依旧无法访问,其他的成员可以被同包的类访问
System.out.println(obj.v2);
System.out.println(obj.v3);
System.out.println(obj.v4);
//obj.showV1(); error, private
obj.showV2();
obj.showV3();
obj.showV4();
}
}
package test2;
import test1.A;
public class D extends A{
public void show() //D作为a的子类 但不是跟a同包 不能直接访问A的private部分 也不能访问default部分
{
//System.out.println(v1); error, private
//System.out.println(v2); error, default
System.out.println(v3);
System.out.println(v4);
//showV1(); error, private
//showV2(); error, default
showV3();
showV4();
A obj = new A();
//System.out.println(obj.v1); error, private
//System.out.println(obj.v2); error, default
//System.out.println(obj.v3); error, protected 只能作为子类才能访问
System.out.println(obj.v4);
//obj.showV1(); error, private
//obj.showV2(); error, default
//obj.showV3(); error protected 只能作为子类才能访问
obj.showV4();
}
}
package test2;
import test1.A;
public class E {
public void show()// e不是a的子类 和a也不同包和a的关系属于最没有关系 只能访问public
{
//E is not a subclass of A. And E is not in the same package of A.
//System.out.println(v1); error, private
//System.out.println(v2); error, default
//System.out.println(v3);
//System.out.println(v4);
//showV1(); error, private
//showV2(); error, default
//showV3();
//showV4();
A obj = new A();
//System.out.println(obj.v1); error, private
//System.out.println(obj.v2); error, default
//System.out.println(obj.v3); error, protected 只能作为子类才能访问
System.out.println(obj.v4);
//obj.showV1(); error, private
//obj.showV2(); error, default
//obj.showV3(); error protected 只能作为子类才能访问
obj.showV4();
}
}