/*
3,权限在不同地方的体现:
public protected default private
同一类中: ok ok ok ok
同一包中: ok ok ok
子类中: ok ok
不同包中: ok 在同一包中子类中是可以访问父类中默认权限(default)的方法,但是在不同包中不行!
在不同包中如果子类继承了父类,那么子类就可以访问父类中的protected方法!
*/ //import mytest.*;
/*
package mytest;
public class DemoA{
public void show(){
new Demo().show();
}
} class Demo{
void show(){
System.out.println("DemoA 中 Demo show!");
}
}
*/ /*
package mytestone;
import mytest.*;
public class DemoAChild extends DemoA{
public void show(){
super.show();
System.out.println("DemoAChild show!");
}
}
*/ public class Test{
public static void main(String[] args){
//DemoA在mytest包中,将show方法protected之后就会挂掉
//mytest.DemoA x = new mytest.DemoA();
//x.show(); // DemoAChild 继承了 DemoA, 该show方法也是protected权限,但是没有放在包中。正常运行!
//DemoAChild xx = new DemoAChild();
//xx.show(); //DemoAChild 继承了 DemoA,并放在包中, 该show方法必须是public权限才正常运行!
mytestone.DemoAChild xx = new mytestone.DemoAChild();
xx.show();
}
} /*
错误1:
Test.java:4: 错误: 无法访问DemoA
DemoA x = new DemoA();
^
错误的类文件: .\DemoA.class
类文件包含错误的类: mytest.DemoA
请删除该文件或确保该文件位于正确的类路径子目录中。
1 个错误 原因:DemoA这个类是属于包mytest体系的,没有放在正确的子路径下!之前的编译为:javac DemoA.java
处理:删掉编译产生的.class文件, 重新编译 javac -d . DemoA.java(让系统自动生成包的子目录); ——----------------------------------------------------------
错误2:
Test.java:4: 错误: 无法访问DemoA
DemoA x = new DemoA();
^
错误的源文件: .\DemoA.java
文件不包含类DemoA
请删除该文件或确保该文件位于正确的源路径子目录中。
1 个错误 原因:源文件和自定义的包在同一子目录下!
处理:请删除该文件或确保该文件位于正确的源路径子目录中。或者明确 DemoA的所属包,即 mytest.DemoA --------------------------------------------------------------
错误3:
Test.java:4: 错误: 找不到符号
DemoA x = new DemoA();
^
符号: 类 DemoA
位置: 类 Test
2 个错误 原因:类名错误。
处理:因为DemoA已经有包所属,必须明确其包名。所以应为 包名.DemoA 即 mytest.DemoA
或者 import mytest.*; 导入包中的类
--------------------------------------------------------------
错误4:
Test.java:4: 错误: DemoA在mytest中不是公共的; 无法从外部程序包中对其进行访问
mytest.DemoA x = new mytest.DemoA();
^
原因:包与包之间的访问权限必须是public的! 否则 其他的三个(protected default private)权限都是将类封装在包内!
处理:那就加上public白! ---------------------------------------------------------------
错误5:
Test.java:5: 错误: show()在DemoA中不是公共的; 无法从外部程序包中对其进行访问
x.show();
^
1 个错误
原因:包中的类是对外公有的,所以该类的成员方法如果在其他包中的类中使用必须也将权限定义为公有!
处理:再加上public白! */

  

java中包容易出现的错误及权限问题的更多相关文章

  1. java中包名命名规范

    在idea中创建package遇到的问题 发现一个问题,当我创建一个lesson-02的package时,输入这个包名后,package自动变成了文件夹 在网上搜索发下java包名一般是小写字母进行命 ...

  2. java中包的命令行(cmd)操作详解

    一.什么是包? 为了更好地组织类,防止在一个空间下出现类重名,Java提供了包机制.包是类的容器,用于分隔类名空间(类型于C++中的命名空间).如果没有指定包名,所有的示例都属于一个默认的无名包(又称 ...

  3. java 中包的概念,常量,静态与继承

    一.包的概念:创建,使用. 1.新建包: 最上面一行,之前不能再有其它代码了. package 包名; 注意:包名一般都有命名的规范.例如:com.itnba.maya.zy(从大到小). 2.使用包 ...

  4. java中包命名常见规则

    做java的都知道java的包.类.接口.枚举.方法.常量.变量等等模型都有一套约定的命名规则! 学习每一种语言都应该学习对应语法和命名规则,以保持一个良好的编码风格.一来显示自己的专业.二来方便阅读 ...

  5. Java中包的介绍

    包的介绍: 未命名包 命名包 可以避免类名重复 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间. 包的作用 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2. ...

  6. 怎么又出错了?盘点java中最容易出现的错误

    现如今,java已经广泛应用各种软件开发领域.基于面向对象的设计,java屏蔽了诸如C,C++等语言的一些复杂性,提供了垃圾回收机制,平台无关的虚拟机技术,Java创造了一种前所未有的开发方式.所以, ...

  7. Java中包的基本管理与编译

    在写程序的过程中,总会出现代码编译过关,但是项目偏偏报错的情况,遇到几种情况,都在此一一记录,希望以后少走弯路. 1.添加jsp文件的时候,会报错 Multiple annotations found ...

  8. java中三种常见内存溢出错误的处理方法

    更多 10   相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的 ...

  9. java中三种常见内存溢出错误的处理方法(good)

    相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识. 在解决j ...

随机推荐

  1. DB_oracle学习笔记_概念分析

    概念分析: 1.       数据库(Database): 数据库是一个文件集合,包括数据文件,临时文件,重做日志文件和控制文件.也可以说数据库是物理操作系统文件或磁盘集合.数据库可以由多个实例(sc ...

  2. mottoes

    1. You don't kown if you can until a try. 2. Rule youself. 3. It's what you do in the dark that puts ...

  3. js实现单文件以及多文件下载

    <script type="text/javascript"> /** * Javascript 多文件下载 * @author Barret Lee * @email ...

  4. android权限permission大全

    1.Android.permission.WRITE_USER_DICTIONARY允许应用程序向用户词典中写入新词 2.android.permission.WRITE_SYNC_SETTINGS写 ...

  5. Vs2013 头文件注释

    在vs2013的默认安装目录 1.CS类修改方式 在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTempla ...

  6. vc编译 curl 7.36.0

    CURL邮件列表中提到官方最新版本的windows devel包中缺少文件,而我又用不到https,所以我就自己下载源码包来编译了 下载源码包:http://curl.haxx.se/download ...

  7. 关于实现一个基于文件持久化的EventStore的核心构思

    大家知道enode框架的架构是基于ddd+event sourcing的思想.我们持久化的不是聚合根的最新状态,而是聚合根产生的领域事件.最近我在思考如何实现一个基于文件的eventstore.目标有 ...

  8. 用UWP实现一个和win10设置页面类似的布局

    不知道有人注意过Win10中的设置页面的布局没?那个页面会根据不同的窗口宽度来调节显示的内容,甚至来后退按钮的操作在不同的宽度也是不同的,看图: 是不是有点cool呢,这篇文章,我们就来做一个类似的布 ...

  9. HTML5文件上传插件 Huploadify V2.1发布

    月初发布了HUploadify2.0版本,增加了文件的断点续传功能,得到了不少朋友的好评.本着按照Uploadify原样复制的原则,本次在一些朋友的建议中采纳了几点,做了一次较小的改动,定为2.1版本 ...

  10. [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索

    1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...