社区
Java SE
帖子详情
2个java基础问题
njtimenowht
2008-10-30 02:00:00
1.java默认的的类访问权限是不是protected?还是public?
2.为什么一下这段代码编译可以通过,运行却会出错?在Editplus里
package abcd;
class ok
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
...全文
184
21
打赏
收藏
2个java基础问题
1.java默认的的类访问权限是不是protected?还是public? 2.为什么一下这段代码编译可以通过,运行却会出错?在Editplus里 package abcd; class ok { public static void main(String[] args) { System.out.println("Hello World!"); } }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
magicluo
2008-10-30
打赏
举报
回复
1.默认的是友好访问类型(friendly),或者说是包类型(package)的,或者说是默认的(default),不需要在类前加任何的修饰符号。
其可以被包中的其他类访问,但是如果子类和父类不处于同一个包中,则也无法访问。
访问权限范围:private < 友好类型< protected < public。
2.运行出错,你需要在编译时候使用javac -d . ok.java //-d参数是生成的类放在以包命名的目录中,因为你开头使用了package abcd ,你运行时候,的类名字应该是abcd.ok.class
njtimenowht
2008-10-30
打赏
举报
回复
2楼加了个public也不行,运行照样出错。
谁谁知道11楼的是什么意思吗?他这样说:
你的程序编译肯定是没问题的,但你应该直接就javac ok.java了,因为你又打包了,那在java ok就有错了
应该javac -d . ok.java运行用java -cp(或-classpath) . abcd.ok,然后运行正常,呵呵
njtimenowht
2008-10-30
打赏
举报
回复
1楼错啦。
public的类、类属变量及方法,包内及包外的任何类均可以访问;
protected的类、类属变量及方法,包内的任何类,及包外的那些继承了此类的子类才能访问;
private的类、类属变量及方法,包内包外的任何类均不能访问;
如果一个类、类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的任何类都可以访问它,
而包外的任何类都不能访问它(包括包外继承了此类的子类),
因此,这种类、类属变量及方法对包内的其他类是友好的,开放的,而对包外的其他类是关闭的。
默认的包访问权限均小于public 和protected。
tiantiandaydream
2008-10-30
打赏
举报
回复
[Quote=引用 2 楼 wuyan_meixin 的回复:]
package abcd;
pubic class ok
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
[/Quote]
正解!
tiantiandaydream
2008-10-30
打赏
举报
回复
[Quote=引用 1 楼 ZangXT 的回复:]
默认的是包访问权限,小于public,大于protected.
[/Quote]
顶!
songyun870
2008-10-30
打赏
举报
回复
是..要跟包名相同的文件
.java文件保存的时候名字要和pulic class的类名完全一样..区分大小写
njtimenowht
2008-10-30
打赏
举报
回复
再问一下,是不是一定要存在一个跟包名相同的文件夹?
.java文件保存的时候要取什么名字呢?如果没有包的话,取ok.java就可以,
现在有个包package abcd.
还有,加了一个public 也是出错
jxxx2967
2008-10-30
打赏
举报
回复
同意楼上
seraphyong
2008-10-30
打赏
举报
回复
建议多看看JAVA基础知识 最前面的基础知识
dclwork
2008-10-30
打赏
举报
回复
1.java默认的的类访问权限为包访问权限(package access,有时也表示成为friendly)
2.为什么一下这段代码编译可以通过,运行却会出错?在Editplus里
package abcd;
class ok
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
编译主要检查语法,main方法只能包含在public class类中,而且要于文件同名
dreamhunter_lan
2008-10-30
打赏
举报
回复
1、默认的是包访问权限,小于public,大于protected.
2、你的程序编译肯定是没问题的,但你应该直接就javac ok.java了,因为你又打包了,那在java ok就有错了
应该javac -d . ok.java运行用java -cp(或-classpath) . abcd.ok,然后运行正常,呵呵
lht821008
2008-10-30
打赏
举报
回复
学习
lht821008
2008-10-30
打赏
举报
回复
学习
lht821008
2008-10-30
打赏
举报
回复
学习
shihuaqino1
2008-10-30
打赏
举报
回复
第一个问题的答案:访问权限控制的等级,从最大到最小权限依次为:public、protected、包访问权限(没有关键字)和private。protected的意思是“就类用户而言,这是private。但对于任何继承与此类的导出类或其他任何位于同一个包内的类来说,它确实可以被访问的”。
1楼的说“默认的是包访问权限”这句话是对的,但后面的不对,因为包访问权限是小于public和protected。
AppleBoy2008
2008-10-30
打赏
举报
回复
默认时即就是不写修饰词,这时只有
同类和同包下
才可以访问。
lxj1234567
2008-10-30
打赏
举报
回复
学习中。过来学东西。
lxj1234567
2008-10-30
打赏
举报
回复
学习中。过来学东西。
gmh521
2008-10-30
打赏
举报
回复
默认是 default,但default不是java关键字。
public class ok{....}
wuyan_meixin
2008-10-30
打赏
举报
回复
package abcd;
pubic class ok
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
加载更多回复(1)
Java
面经手册·小傅哥.pdf
这是一本以面试题为入口讲解
Java
核心内容的技术书籍,书中内容极力的向你证实代码是对数学...2. 想阅读
Java
核心源码,但总感觉看不懂的 3. 看了太多理论,但没有实践验证的 4. 求职面试,总被面试题搞的死去活来的
21天学通
Java
Web开发.pdf
第五篇为框架技术篇,介绍了Struts 2、Hibernate、Spring这三个目前非常流行的轻量级
Java
Web开发框架。第六篇为项目实战篇,通过整合前面的三个框架,开发一套用户管理系统。 《21天学通
Java
Web开发》适合
Java
Web...
Java
零
基础
快速入门
本课程分为三大模块: 初识篇:主要以
Java
的环境安装及
基础
语法为主要内容,帮助学员解决
Java
基础
语法
问题
,并对
Java
做一定的介绍,为后续的进阶课程内容展开做好语言
基础
。 进阶篇:带你玩转
Java
进阶必学的类库和...
Java
2核心技术第6版卷1
基础
知识(二)
Java
2核心技术第6版卷1
基础
知识(二)
Java
核心技术 卷I
基础
知识 中文版第9版【全】.part2.
Java
核心技术 卷I
基础
知识 中文版第9版【全】.part1,因为文件太大,CSDN有单个文件大小限制,所以分为了2部分,这个为part2,请点击我的名字,进入我的资源页面,下载好part1和part2后一起解压。另外还有
Java
核心...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章