小弟刚刚学习JAVA,在看JAVA编程思想第4版,遇到第二章的一个练习题难住了我,特发帖请教各位高手,谢谢,原题如下:
创建一个类,它包含一个int域和一个char域,它们都没有被初始化,将它们的值打印出来,以验证JAVA执行了默认初始化。
第一次我写的代码如下:
//EX02.java
public class EX02{
    int i;
    char c;
    public fun(){
       System.out.println(i);
       System.out.println(p);
  }
public static void main(String[] args){
   new EX02;  
 }
}
执行java EX02.java报如下错误:EX02.java:4: 方法声明无效;需要返回类型
        public static fun(){
                      ^
1 错误经过多次修改后,如下:
public class EX02{
int i;
char c;
public EX02(){
System.out.println(i);
System.out.println(c);
}
public static void main(String[] args){
new EX02();
}
}
正常编译通过,正常java EX02
为何我什么的方法fun()不能通过,必须声明的方法和函数名要一样呢?
请各位帮忙解答,谢谢

解决方案 »

  1.   

    没说要求声明的方法和函数名要一样
    fun()方法没返回值 就要声明
    方法名前加个void 即可
    public void fun(){
      System.out.println(i);
      System.out.println(p);
      }
      

  2.   

    根据你的题目的意思,这个程序应该这样写:
    public class EX02{
      int i;
      char c;
      public EX02(){
      System.out.println(i);
      System.out.println(c);
      }
    public static void main(String[] args){
      new EX02;   
     }
    }
      

  3.   

    public EX02(){
      System.out.println(i);
      System.out.println(c);
      }
    这个构造方法要和你的类名字相同
      

  4.   

    LZ还没入门就看JAVA编程思想,建议还是看基础一点的吧
    构造函数必须与类同名,一般方法必须定义返回值,如果没有返回值就用void
      

  5.   

    没说要求声明的方法和函数名要一样
    fun()方法没返回值 就要声明
    方法名前加个void 即可
    public void fun(){
      System.out.println(i);
      System.out.println(p);
      }public EX02(){
      System.out.println(i);
      System.out.println(c);
      }
    这个构造方法要和你的类名字相同 
      

  6.   

    兄弟,你java还没入门呢。看 think in java 你会晕的
      

  7.   

    think in java 是本好书 但是LZ初学最好还是看看视频或者其他入门书籍,这不是用来学java基础的书
      

  8.   

    你可用 EX02 ex = new EX02(); ex.fun();来实现调用fun()方法.你如果刚学java,建议你不要看java编程思想.选些基础的看吧.
      

  9.   

    你调用new Ex02实际上是调用EX02的构造方法。而fun方法是需要有返回值才能定义。