【java知识点】package 、jar、import 命令行 java访问权限

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();
	}
}

猜你喜欢

转载自blog.csdn.net/kevin_nan/article/details/87904770