当前位置: 代码迷 >> Java相关 >> 书上2段很简单的程序,但我编译老是出错,为什么?
  详细解决方案

书上2段很简单的程序,但我编译老是出错,为什么?

热度:118   发布时间:2011-04-05 15:25:38.0
书上2段很简单的程序,但我编译老是出错,为什么?
第一个程序:
    public class SimpleClass{
    private int a;
    public int getAttribute(){
        return a;
    }
    public void setAttribute(int x){
        a=x;
    }
}
第二个程序:public class UseSimpleClass{
    public static void main(){
        SimpleClass object1 = new SimpleClass();
        object1.setAttribute(9);
        prt( object1.getAttribute(9) );   
        prt();
    }
    static void prt(String s){
        System.out.println(s);
    }
}

到底应该怎么改啊,哪位高手来改下啊。。。我刚学,不怎么会。。。

[ 本帖最后由 pedestrian1 于 2011-4-6 07:11 编辑 ]
----------------解决方案--------------------------------------------------------
第一个没有main()函数
第二个根本就没这个SimpleClass类而且你没有导入类
----------------解决方案--------------------------------------------------------
//第一个程序:
    public class SimpleClass{
    private int a;
    public SimpleClass()  //定义一个构造函数为好
    {
      a=0;
     }
    public int getAttribute(){
        return a;
    }
    public void setAttribute(int x){
        a=x;
    }
}
//第二个程序:
public class UseSimpleClass{
    public static void main(){
        SimpleClass object1 = new SimpleClass();
        object1.setAttribute(9);
        prt( object1.getAttribute() ); //这个应该转化为string类型,我不会,你改吧   
        prt();  //这个没有string参数,你改吧
    }
    static void prt(String s){
        System.out.println(s);
    }
}


----------------解决方案--------------------------------------------------------
第一个程序:
   class SimpleClass{
  public int a;
   
    public void setAttribute(int x){
      this.a=x;
    }
public static void main(agr[] String)
SimpleClass s=new SimpleClass();
s.setAttribute(3);
System.out.println(a);
}
第二个程序: class UseSimpleClass{
//那样写是不对的, 我们首先添加 方法和字段;例如
private int a;
static setAttribute(int s)//一个静态方法
{
//用this 指示变量
this.a=s;System.out.println(s);

}   
public static void main(agr[] String){
        UseSimpleClass object1 = new UseSimpleClass();
         object1.setAttribute(9);
            }
    }
这样就好了,说明因为main是静态方法所以可以调用也可以用类名直接调用不用进行实例化
static void prt(String s)
{System.out.println(s);}
}

你的这段代首先传递的参数类型不一致,9是int型你那是string类型不能接受
----------------解决方案--------------------------------------------------------
答案已删除.

[ 本帖最后由 pedestrian1 于 2011-4-6 07:10 编辑 ]
----------------解决方案--------------------------------------------------------
回复 4楼 tomjava
。。你还用了this。。。我才刚学2节课,太深了。。。不过谢谢你肯帮我改程序。
----------------解决方案--------------------------------------------------------
这2个程序貌似必须要有关联,这样单写是肯定不对的  你要把第一个程序封装在一个包中,然后你再第二个程序中引入该包中的类  具体的书上有
----------------解决方案--------------------------------------------------------
  相关解决方案