我知道这是一个愚蠢的问题,但我仍然怀疑需要清除.
我的问题是,为什么我们不能将课程定义为protected?
我知道我们不能,但为什么呢?应该有一些具体的原因.
我最近开始学习Java,发现很奇怪每个Java类必须在一个单独的文件中声明.我是C#程序员,C#没有强制执行任何此类限制.
为什么Java会这样做?有任何设计考虑因素吗?
编辑(基于几个答案):
为什么Java现在还没有在IDE时代消除这种限制?这不会破坏任何现有代码(或者它会吗?).
仍然来自C++我发现创建许多小助手类和对象很麻烦.主要是因为每个班级必须有一个文件.我基本上有这样一个类:
public class mySimpleClass {
public float[] numbers = new float[ 4 ];
}
Run Code Online (Sandbox Code Playgroud)
然后我有这个课:
public class myNotSoSimpleClass {
private mySimpleClass;
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
第二类不是那么简单就可以拥有自己的文件了.但是,简单的类连接到不那么简单的类,并且不必在自己的文件中包含那么少行代码是非常好的.
总而言之,这就是人们在C++中可以做到的事情:
public class myNotSoSimpleClass {
private struct mySimpleClass {
float numbers[ 4 ];
} myStruct;
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
是否可以在另一个类或同一个文件中嵌入/使用一个类?如果我可以将这两个类设置为一个文件,我会发现使用大型项目更容易.或者Java是每个文件严格一个类,就是这样,语言?
我将以下代码作为作业的一部分
class Base {
public static void main(String[] args){
System.out.println("Hello World");
}
}
public class Factorial extends Base{
}
Run Code Online (Sandbox Code Playgroud)
我的任务是运行代码,然后解释输出.文件的名称是Factorial.java.代码运行没有问题,打印Hello World对我来说是令人惊讶的.在输入代码之前,我认为它不会编译,因为正在扩展的父类应该在另一个文件中,但现在我不太确定.非常感谢soome澄清.
所以我被告知做事的方式是你有你的文件,文件名是Classname.java,然后代码是这样的:
class ClassName {
SOME METHODS
main {}
}
Run Code Online (Sandbox Code Playgroud)
然后就是这样了。
我想在同一个.java文件中定义和使用两个对象。(我不想将另一个类放在不同的文件中,只是因为我想将其发送给某人,并且我想避免将多个文件附加到电子邮件的麻烦[尽管懒惰确实是优秀的程序员,但如果你考虑一下])
我想知道,当我在 C# Unity 中为我的游戏编写代码时,我可以在使用它们后在代码中声明 void ,并且代码仍然有效。另一方面,当我编写纯 C++ 代码时,我需要在使用函数之前声明它们,我很好奇为什么会出现这种差异?
HY,
我对一本书中的一个代码有问题Head first Java ...(第63/64页)
我重新编写代码,但它不起作用.有人能解释一下那是什么意思吗?
我在Eclipse中遇到的错误是:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The public type GuessGame must be defined in its own file
The public type Player must be defined in its own file
at GuessGame.<init>(GameLauncher.java:1)
at GameLauncher.main(GameLauncher.java:73)
Run Code Online (Sandbox Code Playgroud)
并且代码是:
public class GuessGame {
Player p1;
Player p2;
Player p3;
public void startGame(){
p1 = new Player();
p2 = new Player();
p3 = new Player();
int guessp1 = 0;
int guessp2 = 0;
int guessp3 = 0;
boolean …Run Code Online (Sandbox Code Playgroud)