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!");
}
}
...全文
211 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)
内容概要:本文围绕“空地多无人平台协同路径规划技术”的论文复现展开,重点介绍了基于Matlab的多无人机与地面无人平台协同路径规划的算法实现与仿真研究。研究系统性地整合了无人机三维路径规划、动态避障、多机协同、任务分配及防撞机制等核心技术,结合智能优化算法(如遗传算法、粒子群算法、灰狼优化算法等)与经典路径规划模型(如Dubins路径、A*、RRT等),在复杂威胁环境下实现了高效、安全的协同路径规划。文中提供了完整的Matlab代码支持,便于科研人员进行算法验证、性能对比与二次开发,并强调通过复现高水平学术论文(如EI、SCI期刊及硕博论文)深入掌握该领域的前沿方法与技术路线。; 适合人群:具备一定Matlab编程基础,从事无人机系统、自动化控制、人工智能、路径规划等相关领域研究的研究生、科研人员及工程技术人员,尤其适用于正在开展科研项目、撰写学位论文或希望提升算法实践能力的研究者。; 使用场景及目标:① 复现并深入理解空地协同路径规划领域的高水平论文算法;② 掌握Matlab在多智能体路径规划中的建模、仿真与可视化方法;③ 应用于科研课题、毕业设计、项目申报及算法创新实践中,提升研究的技术深度与工程可行性。; 阅读建议:建议结合文中提供的网盘资源(含完整代码、仿真模型及参考文献资料)同步学习,优先选择与自身研究方向契合的案例进行复现,注重算法原理与代码实现之间的映射关系,并在掌握基础方案后尝试进行参数调优、算法融合或引入新约束条件以实现改进与创新。

62,622

社区成员

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

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