七、面向对象程序设计-包和权限

在这里插入图片描述
在这里插入图片描述

一、包

1.package

javac A.java // 将在当前目录下生成A.class
能否把这些class文件存放于其他目录呢?
包实际上就是个文件夹可以包含多级子目录

  • 格式

格式:package 包名称.子包名称;
例子:package a.b.c.d;

  • 编译命令

javac -d < dir> <file.java> (表示在< dir>目录下生成包)

  • 执行方法:

java 包名称.子包名称.类名称

  • 作用:

解决类的同名冲突问题

package a.b.c.d;
public class Test {                             //必须大写和文件名一致
	public static void main(String args[]){		
		System.out.println("hello world");
	}
}

在这里插入图片描述

2.import

  • 使用不同包的类时需要import

格式:
import 包名称.子包名称.类名称; // 手工导入某个类
import 包名称.子包名称.* ; // 由JVM自动加载所需要的类

package a.b.c.ls;
public class Math {                             //必须大写和文件名一致
		public static int add(int a,int b){			//static 表示类方法			
			return a + b + 2;
		}
}
package a.b.c.zs;
public class Math {                             //必须大写和文件名一致
		public static int add(int a,int b){   //static 表示类方法		
			return a + b;
		}
}
import a.b.c.ls.*;
import a.b.c.zs.*;

public class Test {                             //必须大写和文件名一致
	public static void main(String args[]){	
		System.out.println(a.b.c.ls.Math.add(1,2));
		System.out.println(a.b.c.zs.Math.add(1,2));
	}
}

结果:
在这里插入图片描述

  • 如果没有同名包,调用时不用加包

3.jar

  • 生成:jar -cvf <file.jar> < dir>

  • 查看:jar -tvf <file.jar>

  • 解压:tar -xvf <file.jar>

4.CLASSPATH

作用:
指定编译时查找源码的目录
指定运行时查找的“.class文件的目录”或“jar文件”

设置方法:
export CLASSPATH=< dir1>:< dir2>:…:<file1.jar>:<file2.jar>:…

在这里插入图片描述

  • 将a目录打包为my,jar ,然后将a目录删除,再执行找不到包了
    在这里插入图片描述
    c 创建指定文件 v 查看输出信息 f 指定文件名字
  • 我们将a目录和编译生成的class文件都打包成了my.java,需要设置 CLASSPATH 指定查找class或jar的位置
    在这里插入图片描述
    表示在当前目录和my.jar中查找

二、权限

两个层次,一个是类,一个是类成员

  • public class可以被外包访问
  • class只能在本包中访问
package a;
public class Math {                             //必须大写和文件名一致
		public static int add(int a,int b){   //static 表示类方法		
			return a + b;
		}
}

Math为public权限,可以被外包访问

package a;
class Math {                             //必须大写和文件名一致
		public static int add(int a,int b){   //static 表示类方法		
			return a + b;
		}
}

Math方法只能被同包a内访问

类成员

包括属性和方法
private
default
protected
public

权限依次增大

发布了29 篇原创文章 · 获赞 9 · 访问量 1880

猜你喜欢

转载自blog.csdn.net/m0_46291920/article/details/104528158