社区
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!");
}
}
...全文
195
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
基础
教程完整版
Java
基础
教程完整版是JAVE_LOVER作者提供的一系列
Java
教程,总共包含18个章节,涵盖了
Java
SE基本知识点、UML建模、单元测试等内容。下面是对每个章节的详细介绍:
Java
学习系列(一):
Java
的运行机制、JDK的安装...
50道
JAVA
基础
编程练习题
使用循环语句和条件语句可以解决这个
问题
。 【程序 3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 程序分析:利用 for 循环控制 100-999 个数,每个数分解出...
java
源码包2
Tcp服务端与客户端的
JAVA
实例源代码,一个简单的
Java
TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最
基础
的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...
java
源码包---
java
源码 大量 实例
Tcp服务端与客户端的
JAVA
实例源代码,一个简单的
Java
TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最
基础
的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Java SE
62,627
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章