美文网首页
day10-07/08/09-面向对象(包package)

day10-07/08/09-面向对象(包package)

作者: 姗婷 | 来源:发表于2020-05-26 08:10 被阅读0次

一、包(package)
1.对类文件进行分类管理。

  1. 给类提供多层命名空间。
    3.写在程序文件的第一行。
  2. 类名的全称的是 包名.类名。
    5.包也是一种封装形式
D:\11-java\day10>javac -d . PackageDemo.java      //当前目录存放包pack,.当前文件,-d参数指定存放位置

D:\11-java\day10>java pack.PackageDemo  //pack.PackageDemo,类的全名称包.类
Hello World

D:\11-java\day10>javac -d D:\11-java\myclass PackageDemo.java  //pack指定除当前目录外,只要写包的附目录

D:\11-java\day10>set classpath=D:\11-java\myclass   设置classpath

D:\11-java\day10>java pack.PackageDemo
Hello World
package pack;
class PackageDemo
{
    public static void main(String[] args)
    {
        System.out.println("Hello World");
    }
}

一、

PackageDemo.java:19: 错误: 找不到符号
DemoA d = new DemoA();
^
符号: 类 DemoA
位置: 类 PackageDemo
PackageDemo.java:19: 错误: 找不到符号
DemoA d = new DemoA();
^
符号: 类 DemoA
位置: 类 PackageDemo
2 个错误
错误原因:类名写错

二、

PackageDemo.java:19: 错误: 程序包packa不存在
packa.DemoA d = new packa.DemoA();
^
PackageDemo.java:19: 错误: 程序包packa不存在
packa.DemoA d = new packa.DemoA();
^
2 个错误
错误原因:packa包不在当前目录下
需要设置classpath,告诉jvm去哪里找到指定的packa

PackageDemo.java:19: 错误: DemoA在packa中不是公共的; 无法从外部程序包中对其进行访问
packa.DemoA d = new packa.DemoA();
^
PackageDemo.java:19: 错误: DemoA在packa中不是公共的; 无法从外部程序包中对其进行访问
packa.DemoA d = new packa.DemoA();
错误原因:有了包,范围变大,一个包中的类要被访问,必须要有足够大的权限,所以要被访问的类要public修饰。

四、day10-08-面向对象(包与包之间访问)

PackageDemo.java:20: 错误: show()在DemoA中不是公共的; 无法从外部程序包中对其进行访问
d.show();
^
1 个错误
错误原因:类公有后,被访问的成员也要公有后才能被访问
总结:
1.包与包之间进行访问后,被访问的包中的类以及类中的成员,需要public修饰
2.不同包中的子类还可以直接访问父类中被protected权限修饰的成员
3.包与包之间权限的使用:public protected

package packa;
public class DemoA extends packb.DemoB
{
    public void show()
    {
        System.out.println("demo show run");
        method();
    }
}
package packb;
public class DemoB
{
    protected/*保护*/ void method()
    {
        System.out.println("demo method run");
    }
}

五、四种权限

image.png

六、day10-09-面向对象(导入import)

为了简化类名的书写,使用一个关键字,import。导入的是包中的类。
建议不要写通配符的,需要用包中的哪个类,就导入哪个类。
建议定义包名不要重复,可以使用url来完成定义,url是唯一的
如:package cn.itcast.demo
package cn.itcast.test
import packb.haha.hehe.heihei.Democ;
import packb.haha.hehe.heihei.
;//heihei下所有类都导入进来

相关文章

网友评论

      本文标题:day10-07/08/09-面向对象(包package)

      本文链接:https://www.haomeiwen.com/subject/bnneahtx.html