黑马程序员技术交流社区

标题: Java中包常识 [打印本页]

作者: _Water    时间: 2014-4-4 12:58
标题: Java中包常识
/*
包:对类文件进行分类管理
给类提供多层命名空间(名称空间)
写在程序文件的第一行
类名的全称是:包名.类名
包也是一种封装形式。


不同包中的类如何访问呢?

关于包常见的几种错误:
1.找不到符号:原因是类名写错,类名的全名是包名.类名

2.软件包不存在:原因是包不在当前目录下。需要设置classpath,告诉JVM去哪里找指定的package包

3.包中的类或方法在包中不是公共的,无法从外部软件包对其进行访问:
原因是有了包,范围变大,一个包中的类要被访问,必须要有足够大的权限。
所以要被public 修饰。类共有后,被访问的成员也要public 才可以被访问

总结:包与包之间进行访问,被访问的包中的类以及类中的成员需要public 修饰
不同包中的子类还可以直接访问父类中被protected修饰的成员。
包与包之间可以使用的权限只有两种:public和protected


                        public                protectd        default                private
同一个类中          ok                        ok                        ok                        ok
同一个包中          ok                        ok                        ok
子类                  ok                        ok
不同包中          ok



*/
package pack;
import packa.DemoA;//import 导入的是包中的类
import packb.DemoC;
/*
为了简化类名的书写,关键字:import
建议:不要写通配符*,需要包中的哪个类,就导入哪个类
建议定义包名不要重复,使用URL来定义,url是唯一的
package net.csdn.bbs
*/
class PackageDemo
{
        public static void main(String[] args)
        {
                DemoA da=new DemoA();
                da.show();

                //=======当父类DemoB中的method方法修改权限为protected时,就不能直接访问到了
                //packb.DemoB db=new packb.DemoB();
                //db.method();
                DemoC dc=new DemoC();
                dc.method();

        }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2