Java-11-package(包)

protected:

被该修饰符修饰的方法只能由子类使用,其他类创建该类的对象也无法使用.

import:导入包中的类,不能导入包中的包.

目的: 为了简化类名书写
导包的原则:用到那个类,就导入那个类
package mypack;
import packA.*;//导入packA包中所有的类,不导入包中的包. 

import packA.DemoA;//导入packA中的DemoA类
import packB.DemoB;

//导包的原则:用到那个类,就导入那个类

import //干嘛的用,为了简化类名书写
class PackageDemo// extends packA.DemoA
{
    public static void main(String[] args)
    {
        DemoA a = new DemoA();
        a.show();
        DemoB b = new DemoB();
    //  b.method();
        System.out.println("Hello package");
        //show();
    }
}

常见的错误:

错误一:
PackageDemo.java:7: 错误: 找不到符号
                DemoA a = new DemoA();
                ^
  符号:   类 DemoA
  位置: 类 PackageDemo
PackageDemo.java:7: 错误: 找不到符号
                DemoA a = new DemoA();
                              ^
  符号:   类 DemoA
  位置: 类 PackageDemo
2 个错误

原因:类名写错.
因为DemoA类已经有包的所属了,所以必须要明确其包名,正确名称是 包名.类名 packA.DemoA


错误二
PS F:\myjava\package> javac -d. PackageDemo.java
PackageDemo.java:7: 错误: 程序包packA不存在
                packA.DemoA a = new packA.DemoA();
                     ^
PackageDemo.java:7: 错误: 程序包packA不存在
                packA.DemoA a = new packA.DemoA();
                                         ^
2 个错误

原因是在当前目录下没找到,因为packA粗放在其他目录下.
应该配置一个classpath.


错误三:

PackageDemo.java:7: 错误: DemoA在packA中不是公共的; 无法从外部程序包中对其进行访问
                packA.DemoA a = new packA.DemoA();
                     ^
PackageDemo.java:7: 错误: DemoA在packA中不是公共的; 无法从外部程序包中对其进行访问
                packA.DemoA a = new packA.DemoA();
                                         ^
2 个错误

解决:要把类名用public修饰


错误四:

PackageDemo.java:8: 错误: show()在DemoA中不是公共的; 无法从外部程序包中对其进行访问
                a.show();
                 ^
1 个错误

解决:要把要用的方法用public修饰


总结:
包与包之间的类进行访问时,被访问的包中的类必须是public的,被访问的包中的类的方法也必须是public的.
protected:被该修饰符修饰的方法只能由子类使用,其他类创建该类的对象也无法使用.

权限 public protected default private
同一类中 ok ok ok ok
同一包中 ok ok ok
子类中 ok ok
不同包中 ok

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值