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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王延龙 中级黑马   /  2013-6-26 17:11  /  1453 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-30 08:55 编辑

//通过继承Thread类实现多线程
public class Show{

        public static void main(String[] args){
        
                Thread t1 = new PrintChar('a', 100);
                Thread t2 = new PrintChar('b', 100);
                Thread t3 = new PrintNum(100);//此语句出错

                t1.start();
                t2.start();
                t3.start();
        }
}

class PrintChar extends Thread{
//数据域
        private char printToChar;// char型变量 需打印的字母
        private int time;// int型变量 需打印的次数

        public PrintChar(char c, int t){//构造函数 用于初始化
        
                printToChar = c;
                time = t;
        }

        public void run(){//覆写run方法
        
                for(int i = 0; i < time; i++){
               
                        System.out.print(printToChar);
                }
        }
}

class PrintNum extends Thread{

        private int lastNum;

        private PrintNum(int n){
        
                lastNum = n;
        }

        public void run(){
        
                for(int i = 1; i <= lastNum; i++){
               
                        System.out.print(" "+i);
                }
        }
}

//-----------------------------------------------------------------------------------------------------------------------------------------------------------
//后来又重写了一遍 貌似一样但是编译正常,Why
public class Show{
        public static void main(String[] args){                        Thread t1 = new PrintNum(100);                Thread t2 = new PrintChar('A',100);                t1.start();                t2.start();        }}
class PrintNum extends Thread{
        private int num;
        public PrintNum(int n){                        num = n;        }
        public void run(){                        for(int i = 1; i <= num; i++){                                        System.out.print(" "+i);                }        }}
class PrintChar extends Thread{
        private char printToChar;        private int printToTime;
        public PrintChar(char c, int t){                        printToChar = c;                printToTime = t;        }
        public void run(){                        for(int i = 1; i <= printToTime; i++){                                        System.out.print(" "+printToChar);                }        }}


捕获.PNG (4.31 KB, 下载次数: 0)

报错

报错

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
private PrintNum(int n){
        
                lastNum = n;
        }
你把构造函数给私有了,这怎么创建对象呢

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 淡定

查看全部评分

回复 使用道具 举报
private PrintNum(int n)  私有了 创建不了对象 改了就好了
回复 使用道具 举报
是权限控制的问题,人家说得对,改一下就好了,后面写的不就改了么,还是不认真不仔细,跟我一样,呵呵
回复 使用道具 举报
薛淑凯 发表于 2013-6-26 17:22
private PrintNum(int n){
        
                lastNum = n;

谢了,上网不太方便,没有及时回复见谅
回复 使用道具 举报
刘_鑫 发表于 2013-6-26 21:34
private PrintNum(int n)  私有了 创建不了对象 改了就好了

谢谢指教,我懂了
回复 使用道具 举报
lkjghvcx@163.co 发表于 2013-6-27 10:10
是权限控制的问题,人家说得对,改一下就好了,后面写的不就改了么,还是不认真不仔细,跟我一样,呵呵 ...

谢谢了,祝你技术分早过25,愿黑马再相会
回复 使用道具 举报
构造函数你声明为私有的就没法在外面new对象了:)
回复 使用道具 举报
楼主您好,帖子长时间没有动态我已经将您的帖子改成已解决。如有问题请私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马