A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘海陆 于 2013-4-2 20:40 编辑

代码如下:
class Res{
        private String name;
        private String sex;
        public void set(String name,String sex){
                this.name = name;
                this.sex = sex;
        }
        public void out(){
                System.out.println(name+"----"+sex);
        }

class Input implements Runnable{
        private Res r ;
        Input(Res r){
                this.r = r;
        }
        public void run(){
                int x = 0;
                while(true){
                        if(x==0)
                                r.set("张飒","女女女女");
                        else
                                r.set("Angel","female");
                        x= (x+1)%2;
                }               
        }
}

class Output implements Runnable{
        private Res r ;
        Output(Res r){
                this.r = r;
        }
        public void run(){
                r.out();
        }
}

}
class InputOutputDemo {
        public static void main(String[] args) {
                Res r = new Res();
                new     Thread(new  Input(r) ).start();
                new     Thread(new  Output(r) ).start();
        }
}

编译报错信息:

InputOutputDemo.java:50: 找不到符号
符号: 类 Input
位置: 类 InputOutputDemo
                new     Thread(new  Input(r) ).start();
                                    ^
InputOutputDemo.java:51: 找不到符号
符号: 类 Output
位置: 类 InputOutputDemo
                new Thread(new  Output(r) ).start();
                                ^
2 错误

就是代码中红色标记的两个语句,怎么会找不到符号呢,明明已经定义了类和构造函数哦!!!



点评

如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢  发表于 2013-4-2 20:07

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
你把Input类和Output类写到了Res类中,编译当然会报错了,修改如下:
package com.liangxi;

class Res{
    private String name;
    private String sex;
    public void set(String name,String sex){
            this.name = name;
            this.sex = sex;
    }
    public void out(){
            System.out.println(name+"----"+sex);
    }
}
class Input implements Runnable{
    private Res r ;
    Input(Res r){
            this.r = r;
    }
    public void run(){
            int x = 0;
            while(true){
                    if(x==0)
                            r.set("张飒","女女女女");
                    else
                            r.set("Angel","female");
                    x= (x+1)%2;
            }               
    }
}

class Output implements Runnable{
    private Res r ;
    Output(Res r){
            this.r = r;
    }
    public void run(){
            r.out();
    }
}


class InputOutputDemo {
    public static void main(String[] args) {
            Res r = new Res();
            new Thread(new Input(r)).start();
            new Thread(new Output(r)).start();
    }
}

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
你把Input类和Output类写到了Res类中,编译当然会报错了,修改如下:
package com.liangxi;

class Res{
    private String name;
    private String sex;
    public void set(String name,String sex){
            this.name = name;
            this.sex = sex;
    }
    public void out(){
            System.out.println(name+"----"+sex);
    }
}
class Input implements Runnable{
    private Res r ;
    Input(Res r){
            this.r = r;
    }
    public void run(){
            int x = 0;
            while(true){
                    if(x==0)
                            r.set("张飒","女女女女");
                    else
                            r.set("Angel","female");
                    x= (x+1)%2;
            }               
    }
}

class Output implements Runnable{
    private Res r ;
    Output(Res r){
            this.r = r;
    }
    public void run(){
            r.out();
    }
}


class InputOutputDemo {
    public static void main(String[] args) {
            Res r = new Res();
            new Thread(new Input(r)).start();
            new Thread(new Output(r)).start();
    }
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
哦哦,知道了,谢谢哦
回复 使用道具 举报
你那个Res的类少个  }  所以就找不到,你把 } 放到了下面来了,我不太清楚你的意思,你是想调用内部类吗,还是让这三个类独立运行呀,
如果你是想让它们独立运行的话,就把InputOutpuDemo上的} 移上去,如果你要是使用内部类话就改一下: new Thread(new  Res().new Input(r) ).start();
                new Thread(new Res().new  Output(r) ).start();

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
刘策 发表于 2013-4-1 11:07
你那个Res的类少个  }  所以就找不到,你把 } 放到了下面来了,我不太清楚你的意思,你是想调用内部类吗, ...

谢谢了,我正在看看毕老师的视频,写线程间的通讯的代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马