将2个公共类放在一个代码中

时间:2015-10-08 21:57:57

标签: java string

我可以将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: ");

 }
}

2 个答案:

答案 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.
    }
}