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!");
}
}
...全文
216 21 打赏 收藏 转发到动态 举报
写回复
用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)
内容概要:本文围绕基于粒子群算法(PSO)的风电与水电(抽水蓄能)联合优化调度问题展开研究,旨在通过智能优化算法实现可再生能源的高效利用与电力系统的经济稳定运行。文中系统阐述了粒子群算法的核心原理及其在电力调度中的适用性,构建了综合考虑风电出力不确定性、抽水蓄能电站调节能力及系统运行约束的联合优化调度模型。采用Matlab进行算法编程与仿真求解,验证了该方法在降低系统综合运行成本、提升新能源消纳水平、增强电网调峰调频能力等方面的优越性能。研究进一步设计了多种对比场景,分析不同调度策略下的系统表现,充分展示了所提模型在应对复杂运行条件时的鲁棒性与实用价值。; 适合人群:具备一定电力系统分析基础和Matlab编程能力的研究生、科研人员,以及从事新能源并网调度、电力系统规划与运行等相关领域的工程师; 使用场景及目标:①应用于风电场与抽水蓄能电站的协同优化调度决策支持;②为高比例可再生能源接入的电力系统提供经济可靠的低碳调度方案;③服务于高校及科研院所中关于智能优化算法在能源系统中应用的教学与科研实验; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节与模型构建逻辑,重点关注目标函数设计、约束条件处理及参数设置对优化结果的影响,并通过复现仿真结果来掌握粒子群算法解决复杂非线性调度问题的关键技术要点。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧