黑马程序员技术交流社区

标题: 请问这段代码怎么错了? [打印本页]

作者: liuruhui    时间: 2015-12-9 21:38
标题: 请问这段代码怎么错了?
public class Demo {

/**
* @param args
*/
public static void main(String[] args) {
MyThis a = new MyThis();
        a.setId(12);
        a.getId();
        
        MyThis b = new MyThis();
        b.setId(13);
        b.getId();
}

class MyThis{
private int id;

public void setId(int id){
this.id = id;
}

public void getId(){
System.out.println(this.id);
}
}       
}
更多0




作者: DaYe    时间: 2015-12-9 22:03
这代码让你写的很明显类中类了
作者: DaYe    时间: 2015-12-9 22:06
public class Demo {

/**
* @param args
*/
public static void main(String[] args) {
MyThis a = new MyThis();
        a.setId(12);
        a.getId();
        
        MyThis b = new MyThis();
        b.setId(13);
        b.getId();
}


}
class MyThis{
        private int id;
       
        public void setId(int id){
                this.id = id;
        }
       
        public void getId(){
                System.out.println(this.id);
        }
}      
作者: DaYe    时间: 2015-12-9 22:08
再或者
public class Demo {

/**
* @param args
*/
public static void main(String[] args) {
MyThis a = new MyThis();
        a.setId(12);
        a.getId();
        
        MyThis b = new MyThis();
        b.setId(13);
        b.getId();
}

static class MyThis{
                private int id;
               
                public void setId(int id){
                        this.id = id;
                }
               
                public void getId(){
                        System.out.println(this.id);
                }
        }        
}
作者: xiaoaonuanhu    时间: 2015-12-9 22:15
运行的时候报什么错误了?
作者: 米阳SOHO    时间: 2015-12-9 22:20
你的类中没有无参构造函数,而你在主函数用的是无参构造函数
作者: pllaoyao    时间: 2015-12-9 22:21
我是来看代码学习大神改错的
作者: bbaijiajinger    时间: 2015-12-9 22:38
你这是内部类吗?
还是括号打错了?
作者: songjianzaina    时间: 2015-12-9 22:38
你的这种写法是把class MyThis 当做内部类来使用,不知楼主是否有意这样做。如果你是确实是将class MyThis看做是内部类的话,只需在类名前面加上static 也就是static class MyThis 代码如下:

public class Demo {

/**
* @param args
*/
public static void main(String[] args) {
MyThis a = new MyThis();
        a.setId(12);
        a.getId();
        
        MyThis b = new MyThis();
        b.setId(13);
        b.getId();
}

static class MyThis{
private int id;

public void setId(int id){
this.id = id;
}

public void getId(){
System.out.println(this.id);
}
}        
}

另外一种可能是楼主并不是要把MyThis当做内部类使用,如果是这样的话,那就是楼主粗心将MyThis类写在了Demo类里面。您只需将MyThis类移到Demo类大括号外即可。代码如下:
public class Demo {

/**
* @param args
*/
public static void main(String[] args) {
MyThis a = new MyThis();
        a.setId(12);
        a.getId();
        
        MyThis b = new MyThis();
        b.setId(13);
        b.getId();
}
}
class MyThis{
private int id;

public void setId(int id){
this.id = id;
}

public void getId(){
System.out.println(this.id);
}
}        

作者: DayBreak    时间: 2015-12-9 22:40
把两个类分开就对了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2