packageLearn.java
//package com.example.helloworld;
package mypackage; import packageDemo.*; /* 可以直接引入包名,再直接引用包,就不用引用类时用包名.类名的方式 .*是导入包中所有的类 import packageDemo.DemoB;只引入DemoB类,使得开发效率更高 import导入的是类。不是包 如果目录如 \haha\zz.class ,导入package包中haha子包中的类 import package.hahah.*;导入package包中的haha子包中的类 */ /*把包压缩成jar包 * jar 直接输入jar可以看到命令提示 * 命令行目录文件下输入 jar cf my.jar pack * jar cfc my.jar pack//可以看到压缩的大小和压缩率 * jar-xfv my.jar * * */ //这个包里有个类 //在不写包的情况下,里面包含有一个默认包 //有了包以后,包的名称应该是:包名.类名 public class packageLearn { public class DemoB { } /*包 * 对类文件进行分类管理 * 给类提供多层命名空间 * 写在程序文件的第一行 * 类名的全称是 包名.类名 * 包也是一种封装形式 * */ // 包与包之间禁止访问可以加上protected /* public protected default private 同一个类中 ok ok ok ok 同一个包中 ok ok ok 子类 ok ok 不同包中 ok */ public static void main(String[] args) { DemoA d1=new DemoA(); packageDemo.DemoB d2=new packageDemo.DemoB(); d1.show(); d2.run(); System.out.println("Hello Package"); }}
DEmoA.java
package mypackage; public class DemoA{ public int show() { System.out.println("I'm Show."); return 0; } }
DemoB.java
package packageDemo; public class DemoB extends mypackage.DemoA { public void run() { System.out.println("I'm demoB"); } }