我正在网上关注CS106A讲座。我正在阅读第12讲的代码,但是它给了我Eclipse中的错误。
这是我的代码。似乎错误是因为main
方法中的单词void。我尝试删除main方法,但当然Java没有它就无法运行。
我是一个新手,没有人解释String[] args
真正意味着什么,但我被告知要忽略它并使用它。如果有人能向我解释,我会很感激。
这个错误也出现在'toLower'方法上;不知道这意味着什么: 参数toLower的非法修饰符;只允许决赛
(如果有帮助;代码的要点是将大写字母转换为小写字母)
public class CS106A {
public static void main(String[] args){
public char toLower(char ch);
if (ch >= 'A' && ch <= 'Z'){
return ((ch - 'A') + 'a');
}
return ch;
}
}
由于
答案 0 :(得分:6)
您应该在main之外定义您的方法,例如:
public class YourClass
{
public static void main(String... args)
{
}
public char yourMethod()
{
//...
}
}
Java不支持嵌套方法;但是,有workarounds,但它们不是你想要的。
关于args
的问题,它只是一个Strings
数组,对应于命令行参数。请考虑以下事项:
public static void main(String... args) //alternative to String[] args
{
for (String argument: args)
{
System.out.println(argument);
}
}
通过java YourClass Hello, World!
执行
将打印
你好,
Word!
答案 1 :(得分:2)
您无法在其他方法(toLower
)中声明方法(main
)。
答案 2 :(得分:1)
是void返回类型不能返回任何值。
如果为此过程创建一个单独的函数会更好,它将返回一些值并从main()调用它。
public class Test
{
public static void main(String[] args)
{
String[] a = testMethod();
}
public String[] testMethod()
{
.....
.....
return xx;
}
}
希望它会对你有所帮助。
由于
答案 3 :(得分:1)
您需要在主
之外声明您的方法public class YourClass
{
public static void main(String... args)
{
}
public char yourMethod()
{
}
}
字符串args位是这样的,当你通过命令行运行它时,你可以发送值(作为字符串)
>java myprogram var1 var2 ....
答案 4 :(得分:1)
因为你已经添加了;在方法的最后
更正后的代码:
public class CS106A {
public static void main(String[] args){
Char char=new CS106A.toLower('s');
System.out.println(char);
}
public char toLower(char ch)
{
if (ch >= 'A' && ch <= 'Z'){
return ((ch - 'A') + 'a');
}
return ch;
}
}
请阅读如何在任何java网站上的java中编写方法
答案 5 :(得分:0)
你不能在java中使用嵌套方法。
toLower()
方法位于main()
内。
分别使用两种方法。 void
表示这些方法没有任何回报。
您可以尝试以下
public static void main(String[] args){
char output=new CS106A().toLower('a'); // calling toLower() and take the
// return value to output
}
public char toLower(char ch){
if (ch >= 'A' && ch <= 'Z'){
return ((ch - 'A') + 'a');
}
return ch;
}
答案 6 :(得分:0)
java中不允许使用嵌套方法定义。您已在toLower()
方法中定义了方法main
答案 7 :(得分:0)
您不能在Java中使用这样的嵌套方法。 CS106A是一个类。 main()
和toLower()
是它的两种方法。单独写下来。
对于main()方法参数中的String[] args
,如果您之前已经学过它,则类似于在C中说int arc, char **argv
。所以基本上args是一个所有命令行参数的数组。
答案 8 :(得分:0)
public class CS106A
{
public static char toLower(char ch)
{
if (ch >= 'A' && ch <= 'Z')
{
return ((ch - 'A') + 'a');
}
return ch;
}
public static void main(String[] args)
{
System.Out.Println(toLower('A'));
}
}
希望这会对你有所帮助。
答案 9 :(得分:0)
string [] args用于遵循该技术定义的原型。如果您不使用它,那么JVM会将其视为一种简单的方法。此外,因为这是原型然后记住技术使用数组的0字节。例如:
class MainDemo{
public static void main(){
System.out.println("I am main method without arg");
}
public static void main(String[] args){
main(); //As method is static so no need to create an object
System.out.println("MainDemo");
}
}
以上的O / p将给出:
I am main method without arg
MainDemo
关于你的代码,你不能在main方法中定义/声明任何方法。在main方法之外但在课堂内使用它。