java16包pack机制

包机制

包 称为 package,java当中引入package这种语法机制 主要是为了 方便程序的管理。
不同功能的类 分别放到不同的软件包 当中, 查找方便,管理比较方便,易维护。

定义包

在java源程序的第一行编写package语句。
package只能编写一个语句。

语法结构:

package 报名;

包命名规范:

公司域名倒序 + 项目名oa + 模块名 + 功能名
例如:
com.bjpowernode.oa.user.service;
org.apache.tomact.core;

包名要求全部小写,也属于标识符,必须遵守标识符的命名规则。
一个包将来对应的是一个目录。
目录之间使用 . 隔开。

使用了package机制之后,类名不再是test01,类名是package com.bjpowernode.javase.day11.Test

编译还是使用 javac java源文件的路径 (这样会在硬盘上 生成class文件, Test.class)
之后 手动创建目录,将Test.class 字节码文件 存放到 指定的目录下
运行 java com.bjpowernode.javase.day11.Test

另一种方式,编辑 + 运行。
编译: javac -d 编译之后存放路径 java源文件的路径

例如,将F:\Hello.java文件编译之后放到 C:\目录下

javac -d C:\ F:\Hello.java
javac -d . *.java
将当前路径中*.java文件编辑后,放到当前目录下
package com.bjpowernode.javase.day11;
public class Test {
  public static void main(String[] args) {
    System.out.println("Test01's main method execute!");
  }
}

运行 JVM的类加载器ClassLoader默认从当前路径下加载。
保证DOS命令窗口的路径先切换到com所在的路径,执行: java com.bjpowernode.javase.day11.Test

通过import 包名的形式可以避免 输入全部名字
在这里插入图片描述
同一个包下的类不需要导入,不在同一个包下的类需要import导入。

特殊类

package com.bjpowernode.javase.day11;


import java.util.Date;
public class Test02 {

    public static void main(String[] args){

        //使用完整的包名创建
        com.bjpowernode.javase.day11.Test t = new com.bjpowernode.javase.day11.Test();
        System.out.println(t);
        //可以省略报名,因为Test 和 Test02是同一个软件包中
        Test tt = new Test();
        System.out.println(tt);

        //java lang.* 不需要手动引入,系统自动引入。
        //lang: language语言包,是java语言的核心类,不要用手动引入。
        String s = "abc";
        System.out.println(s);

        //直接编写一下代码编译错误,因为Date类没有找到,需要导入包
        Date d = new Date();
        
    }

}

访问控制权限修饰符

    控制元素的访问方位
    访问控制权限修饰符包括:
    public      任何位置都可以访问
    protect     同包,子类
    缺省         同包
    private     表示私有,只能在本类中访问

当某个数据只希望子类使用,使用protect修饰。

###修饰符范围
private < 缺省 < protectd < public

package com.bjpowernode.javase.day11;

public class User {
    //保护的
    protected int i = 10;
    //缺省
    int j = 20;
}



package com.bjpowernode.javase.day11;

public class Test {
  public static void main(String[] args) {
    User u = new User();
    System.out.println(u.i);
    System.out.println(u.j);
  }
}

在同一个包下面,上述代码没问题。
只要出了包之后,pretected修饰的只可以在同包下进行访问。

类只能采用public和缺省的修饰符进行修饰,
内部类除外。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值