包及访问控制权限(包访问权限修饰符的作用)

  本篇文章为你整理了包及访问控制权限(包访问权限修饰符的作用)的详细内容,包含有包的使用与访问控制 包访问权限修饰符的作用 应用包访问权限帮助程序 包之间的访问控制特点是什么 包及访问控制权限,希望能帮助你了解 包及访问控制权限。

  为什么要使用包:

  包实际上就是一个文件夹,在需要定义多个类或接口时,为了避免名称重复而采用的一种措施。

  为一个程序打包:

  使用:

  直接在程序中加入package关键字。

  定义格式: package 包名称.子包名称;

  案例:

  

package kw.com;

 

  class Demo{

   public String getInfo(){

   return "Hello World";

  public class ClassDemo01 {

   public static void main(String[] args){

   System.out.println(new Demo().getInfo());

  

 

  此时,程序是在包中的,所以完整的类名称应该是"包.类名称"即为 kw.com.ClassDemo01

  编译时需要加入参数: javac -d . ClassDemo01.java

  -d:表示生成目录。

  .:表示当前目录。

  编译完成之后,会自动生成相应的文件夹(包)。

  执行类:(需要完整类名) java kw.com.ClassDemo01

  3.import语句

  作用:

  在一个包中需要使用其他包中的类就需要通过import语句导入。

  导入格式:

  import 包名称.子包名称.类名称; -- 手工导入所需要的包

  import 包名称.子包名称.*; -- 由JVM自动加载所需要的类

  
定义包kw.com.a和包kw.com.b,并在包w.com.b中调用包kw.com.a中的类。

  

package kw.com.a;

 

  public class Demo {

   public String getInfo(){

   return "Hello World!!!";

  

 

  

package kw.com.b;

 

  import kw.com.a.Demo;

  public class PackageDemo02 {

   public static void main(String[] args) {

   Demo demo = new Demo();

   System.out.println(demo.getInfo());

  

 

  注意:手动编译时:应该先编译Demo.java,在编译PackageDemo02.java

  如果一个类想要外包访问,则此类一定要定义成 public class⭐⭐⭐

  public class 与 class 声明类的区别:

  一个类声明为public class,则文件名称必须与类名称一致,并且一个类文件中只能有一个 public class。

  使用 class声明一个类,则文件名称可以与类名称不一致,但是执行时必须执行生成的class文件名称。

  在包访问上存在限制

  如果一个类只在本包中访问,不需要被外包访问,则可以直接声明为class。

  如果一个类需要被外包访问,则必须声明为 public class。

  
这两种导入方式的性能是一样的。因为使用 "*" 时程序也是自动加载所需要的类,而不需要的类根本不会被加载进来。

  注意:

  在一个程序中同时导入两个包的同名类时,需要明确的写出完整的类名称: "包.类名称"

  4.常见系统包

  
java.lang

  此包为基本的包,String、Inter等常用类都保存在此包中,在JDK1.0中如果想要编写程序,则必须手动导入此包,但是随后的JDK解决了此问题,所以此包现在是自动导入。

  
java.util

  此包为工具包,一些常用的类库、日期操作等都在此包中、如果把此包掌握精通,则各种设计思路都可以很好的理解。

  
java.awt

  包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形界面(GUI)

  
如果一个类中的方法全部是使用static声明的静态方法,则在导入时就可以直接使用import static的方式导入。

  导入格式: import static 包.类.*;

  案例:

  

package kw.com.a;

 

  public class Demo {

   public static int add(int i, int j){

   return i + j;

   public static int sub(int i, int j){

   return i - j;

   public static int mul(int i, int j){

   return i * j;

   public static int div(int i, int j){

   return i / j;

  

 

  

package kw.com.b;

 

  import static kw.com.a.Demo.*;

  public class PackageDemo02 {

   public static void main(String[] args) {

  // 直接调用静态方法,不需要声明对象之后在调用

   System.out.println("3 + 3 = " + add(3, 3));

   System.out.println("3 - 2 = " + sub(3, 2));

   System.out.println("3 * 3 = " + mul(3, 3));

   System.out.println("3 / 3 = " + div(3, 3));

  

 

  注意:如果程序使用了静态导入,则类中所有的静态方法都可以直接被使用,而不需要在使用"类.静态方法()"的形式调用。

  6.jar命令使用

  当开发者为客户开发了一套Java类后,需要把这些类交给用户使用,但是如果直接把*.class格式的文件发给用户是比较麻烦的,所以一般情况下会把这些*.class 文件压缩成一个文件交付给客户使用,那么这样的文件就称为jar文件(Java Archive File)。

  JDK自带jar.exe文件,可以在命令行中使用jar命令进行打jar包。

  7.访问控制权限

  Java中一共存在4中访问控制权限:

  private

  default(默认)

  protected

  public

  1.private

  private属于私有访问控制权限,可以用在属性的定义、方法的声明上,一旦使用了private关键字声明,则只能在本类中进行访问。

  2.default

  如果一个类中的属性和方法没有使用任何的访问权限声明,则就是默认的访问权限,默认的访问权限可以被本包中的其他类所访问,但是不能被其他包的类所访问。

  3.protected

  protected属于受保护的访问权限。一个类中的成员如果使用了protected访问权限,则只能被本包及不同包的子类所访问。

  案例:

  在其他包的类中直接访问protected属性

  

package kw.com.a;

 

  public class Demo {

   protected String name = "Hello";

  

 

  

package kw.com.b;

 

  import kw.com.a.Demo;

  public class PackageDemo02 {

   public static void main(String[] args) {

   Demo demo = new Demo();

  // 错误,不同包的类无法访问protected属性

   System.out.println(demo.name);

  

 

  
public static void main(String[] args) {

   HelloDemo demo = new HelloDemo(); //实例化子类实例

   demo.print();

  

 

 

  通过不同包中的子类进行访问。

  4.public

  public属于公共访问权限。使用public声明的成员,可以在所有类中被访问,不管是否在同一个包中。

  5.访问控制权限表

  
类:所有单词的首字母大写,如 TestJava。(大驼峰)

  方法:第一个单词的首字母小写,之后每个单词的首字母大写,如 getInfo()。【小驼峰】

  属性:第一个单词的首字母小写,之后每个单词的首字母大写,如 studentName。【小驼峰】

  包:所有单词的字母小写,如 kw.com.demo

  常量:所有单词的字母大写,如 FLAG

  以上就是包及访问控制权限(包访问权限修饰符的作用)的详细内容,想要了解更多 包及访问控制权限的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: