A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© _Water 中级黑马   /  2014-4-4 12:58  /  1142 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
包:对类文件进行分类管理
给类提供多层命名空间(名称空间)
写在程序文件的第一行
类名的全称是:包名.类名
包也是一种封装形式。


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

关于包常见的几种错误:
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();

        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马