/*
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. M1M2总结

    这个学期很开心可以和一帮兄弟姐妹们一起做软件写代码,总体看下来真的是充满哦了艰辛和困苦.虽然我是负责软件测试的这一块的,但是看着他们辛苦的写代码我也很是为他们着急和心疼.毕竟,编译当头,数据库辅助,每 ...

  2. [Java基础]java的main函数

    1.main函数详解 main在编程中的形式:public static void main(String[] args) { - } public : 公共的. 权限是最大,在任何情况下都可以访问. ...

  3. 《Memcache学习总结》[PDF]发布

    <Memcache学习总结>[PDF]发布 百度网盘共享: http://pan.baidu.com/s/1mgvayQO  版本号: V1.2 最后跟新: 2015-04-01 讨论组: ...

  4. sum() 函数

    sum()的参数是一个list 例如: sum([1,2,3])

  5. 头部加mead(便于seo优化)

    <meta name="Keywords" content="关键词,关键词" /> <meta name="description ...

  6. Inno Setup 下载安装

    Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件. 目前 ...

  7. Hadoop2.20集群搭建

    hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFS HA.YARN等. 注意:apache提供的hadoop-2.2.0的安装包是在32位操作系统编译的,因为hadoop依赖一些C+ ...

  8. 添加Labels的两种方法

    private void AddLabel(IFeatureLayer pLayer,string fieldname,ITextSymbol Symbol) { container.DeleteAl ...

  9. [leetcode 35] Search Insert Position

    1 题目: Given a sorted array and a target value, return the index if the target is found. If not, retu ...

  10. Blend 2015 教程 (二) 样式

    前一篇讲述了如何在新Blend中完成一个简单的带数据绑定的界面小例子,本篇将讲述一下,把View层和Style层分开,并搭建Style层框架的方法,并进行细节样式修改. 1. 在解决方案资源管理器面板 ...