我可以将2个公共类放入一个Java代码中吗?
例如:我需要向后翻转输入的单词,然后用户可以要求打印出单个字符。
我编写了代码的第一部分,它将单词更改为向后,但不确定如何在第一部分内实现代码的第二部分。
import java.util.*;
class backwards_string
{
public static void main(String args[])
{
String original, reverse = "";
Scanner in = new Scanner(System.in);
System.out.println("Please enter a word: ");
original = in.nextLine();
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + original.charAt(i);
reverse = reverse.toUpperCase();
System.out.println("Your word backwards is: "+reverse);
System.out.println("Choose an individual character to print out: ");
}
}
答案 0 :(得分:2)
如果问题是:我可以在一个java文件中有多少个顶级(=非嵌套)类?
答案是:您可以使用公共访问修饰符只有一个顶级类。此外,在这种情况下,文件名必须与其中的公共类的名称相匹配。
无论如何,偷看你的代码:
class backwards_string {
//...
}
类backward_string
不是公共的,它是默认的(当您根本没有声明任何访问修饰符时获得的访问级别)。因此,您可以在同一个java文件中拥有任意数量的顶级默认类。
如果您真的想拥有多个公共顶级类,那么每个顶级类都必须拥有自己的文件源。
答案 1 :(得分:0)
是的,这是可能的。您不必将其放在一个文件中,但您可以使用不同的类。但它们必须位于同一个包(文件夹)中。
它看起来像这样:
backwards_string.java
import java.util.*;
class backwards_string
{
public static void main(String args[])
{
String original, reverse = "";
Scanner in = new Scanner(System.in);
System.out.println("Please enter a word: ");
original = in.nextLine();
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + original.charAt(i);
reverse = reverse.toUpperCase();
System.out.println("Your word backwards is: "+reverse);
System.out.println("Choose an individual character to print out: ");
//when you want to use the other class:
DifferentAction_String otherClass = new DifferentAction_String();
otherClass.doThingsWithReverseString(reverse);
}
}
DifferentAction_String.java:
public class DifferentAction_String {
public void doThingsWithReverseString(String reverse) {
//here you do things with the reverse string.
}
}