包的定义与使用

2020-11-04  本文已影响0人  曾梦想仗剑天涯

    在实际开发过程之中,肯定要一直存在有包的概念,利用我们的包可以实现类的包装,在以后的实际开发之中,所有的类都必须放在包里面

包的定义与使用

//定义包
package hello.test;   //定义包,其中.表示分割子目录(子包)
public class Hello {
  public static void main(String [] args) {
    System.out.println("Hello world");
  }
}

包的导入

//定义一个程序类 “util”,这个类负责进行一个消息数据的获取


//Message.java
package util;
public class Message {
  public static void main(String [] args) {

  }
  public String getContent() {
    return "这是一个消息";
  }
}

//TestMessage.java
package test;
import util.Message;
public class TestMessage {
  public static void main(String [] args) {
    Message msg = new Message();
    System.out.println(msg.getContent());
  }
}
package test;
import util.*;    //导入其他包的类
import demo.*;    //导入其他包的类
public class TestMessage {
  public static void main(String [] args) {
    util.Message msg = new util.Message();
    System.out.print(msg.getContent());
  }
}

包的静态导入

    假如说现在有一个类,这个类中的全部方法都是static方法,按照原始的做法肯定要导入程序所在的“ 包.类 ”,然后才可以通过类名称调用这些静态方法;

//原始方式


//MyMath.java
//定义一个MyMath数学类
package util;
public class MyMath {
  public static void main(String [] args) {

  }
  public static int add(int ...args) {
    int sum = 0;
    for(int temp : args) {
      sum += temp;
    }
    return sum;
  }
  public static int sub(int x, int y) {
    return x - y;
  }
}


//TestMath.java
package test;
import util.MyMath;    //导入其他包的类
public class TestMath {
  public static void main(String [] args) {
    System.out.println(MyMath.add(10, 20, 30));
    System.out.println(MyMath.sub(30, 20));
  }
}
//静态导入处理
package test;
import static util.MyMath.*;    //导入其他包的类
public class TestMath {
  public static void main(String [] args) {
    System.out.println(add(10, 20, 30));
    System.out.println(sub(30, 20));
  }
}

生成jar文件

系统常用包

访问控制权限

No. 访问范围 private default protected public
01 同一包中的同一类 ✔️ ✔️ ✔️ ✔️
02 同一包中的不同类 ✔️ ✔️ ✔️
03 不同包的子类 ✔️ ✔️
04 不同包的所有类 ✔️
//Message.java
package util.a;
public class Message {
  protected String info = "www.baidu.com";
}

//NetMessage.java
package util.b;
import util.a.Message;
public class NetMessage extends Message {
  public void print() {
    System.out.println(super.info);
  }
}

//TestMessage.java
package test;
import util.b.NetMessage; 
public class TestMessage {
  public static void main(String [] args) {
    new NetMessage().print();
  }
}
 //TestMessage.java
package test;
import util.a.Message; 
public class TestMessage {
  public static void main(String [] args) {
    System.out.println(new Message().info);
  }
}
上一篇 下一篇

猜你喜欢

热点阅读