我写了这个类(打印数组列表),在其中我在main
函数中创建了一个方法..
嗯它不起作用:我创建了函数static
并在main
方法中声明了它,但它仍然没有用。在main方法中,我使用了一个没有访问说明符的函数:它仍然不起作用。
你不能在main
方法中声明一个方法吗?
有没有办法在main方法中声明一个方法(除了在main方法之外使其公共静态)?
public class TestArrays {
public static void main(String[] args) {
// Step 1 & 2: declare/initialize array variables
int[] array1 = { 2, 3, 5, 7, 11, 13, 17, 19 };
int[] array2;
// Step 3: display array1 with initial values
System.out.print("array1 is ");
printArray(array1);
System.out.println();
// Step 4: make array2 refer to array1
array2 = array1;
// modify array2
array2[0] = 0;
array2[2] = 2;
array2[4] = 4;
array2[6] = 6;
// print array 1
System.out.print("array1 is ");
printArray(array1);
System.out.println();
static void printArray(int[] array) {
System.out.print('<');
for (int i:array ) {
// print an element
System.out.print(i);
// print a comma delimiter if not the last element
}
System.out.print('>');
}
}
答案 0 :(得分:10)
不,你不能(直接 * )在Java中的其他方法中定义方法(main
方法在这里不是特例)。
您想要做的是将方法放在与main
相同的类中。如果main
需要在不创建类实例的情况下调用它,那么它必须是static
,但不一定是public
。
*但是,您可以使用其他方法中的方法声明匿名内部类。
答案 1 :(得分:0)
你不能在java中这样做。 java使用类,它们封装了所有内容,甚至是主方法 - 你将方法放在类中。
答案 2 :(得分:0)
我认为试试这个代码。它可能有用。
package practice;
class MyThreads extends Thread
{
MyThreads()
{
System.out.print(" MyThreads");
}
public void run()
{
System.out.print(" bar");
}
public void run(String s)
{
System.out.println(" baz");
}
}
public class TestThread
{
public static void main (String [] args)
{
Thread t = new MyThreads()
{
public void run()
{
System.out.println(" foo");
}
};
t.start();
System.out.println("out of run");
}
}
答案 3 :(得分:0)
方法/块中定义的任何功能都无法在其外部访问。
因为,正如我们所知,该特征的范围在块/方法的末尾结束。
所以没有外部(方法之外)使用它。
例如:
class Demo
{
public static void main(String args[])
{
for(int i=0;i<10;i++) //for block
{
//.....
}
//outside of for loop
System.out.println(i); // i can't be find symbol
int sum()
{
int k=5;
}
//outside of sum()
System.out.println(k); //won't get it.
}
}
我认为这是正确的。否则纠正我。