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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo44 {
        public static void main(String[] args) {
                car s=new car();
                car(s);
                for (int i=0;i<10 ; i++){
                        System.out.println(car (s));
                }
        }

        public static int car(car s){
                s.color="red";
                s.num=8;
                s.run();
                return car(s);
        }
}
class car {
       
                String color;
                int num;
                public void run(){
                System.out.println(color+"..."+num);
        }
}
求各位大神指正这段代码的不适之处在哪儿,本来是想循环10的

13 个回复

倒序浏览
调试问题出在 car(s);
回复 使用道具 举报
不懂为什么要把car作为参数传入,这是在做递归?
回复 使用道具 举报
在car()方法里return car(s),其中car(s)指的是参数为对象引用s的方法,方法返回其本身,自然  无限循环~
回复 使用道具 举报
class Demo {
        public static void main(String[] args) {
                Car s=new Car();
                car(s);
                for (int i=0;i<10 ; i++){
                        System.out.println(car (s));
                }
        }

        public static Car car(Car s){
                s.color="red";
                s.num=8;
                s.run();
                return  s;
        }
}
class Car {
        
                String color;
                int num;
                public void run(){
                System.out.println(color+"..."+num);
        }
}
我帮你改了一下, 这样就对了.记得编码最好记得标识符的大小写~
回复 使用道具 举报
这样代码比较容易读

public class Demo  {

        public static void main(String[] args) {
                Car car=new Car();
                init(car);                                //初始化赋值
                for (int i=0;i<10 ; i++){
                       car.print();                        //打印10次
                }
        }

        public static void init(Car car){
                car.color="red";
                car.num=8;
        }
}
class Car {
                String color;        //颜色
                int num;                //车号
                public void print(){
                System.out.println(color+"..."+num);
        }
}
回复 使用道具 举报
那个car方法不对,会出现无限循环的结果,这是递归,你试试吧该方法中的int 类型改成void类型。
回复 使用道具 举报
谢谢各位大神指导
回复 使用道具 举报
yuxing 发表于 2016-7-12 21:13
class Demo {
        public static void main(String[] args) {
                Car s=new Car();

public static Car car(Car s){
中为什么把Car改成int和void都有问题
回复 使用道具 举报
夏萱 发表于 2016-7-12 22:03
这样代码比较容易读

public class Demo  {

这个运行了一下,好像还是有问题
回复 使用道具 举报
惊鸿游龙 发表于 2016-7-13 10:44
这个运行了一下,好像还是有问题

这是我这里的代码,

你拷贝到自己的工程要写
class Demo44 {

学一下看错误信息,这些错误调试之后就懂了

加油~
回复 使用道具 举报
惊鸿游龙 发表于 2016-7-13 10:43
public static Car car(Car s){
中为什么把Car改成int和void都有问题

因为你返回的是一个对象~
回复 使用道具 举报
夏萱 发表于 2016-7-13 11:07
这是我这里的代码,

你拷贝到自己的工程要写

谢谢指导{:3_53:}
回复 使用道具 举报
yuxing 发表于 2016-7-13 11:20
因为你返回的是一个对象~

谢谢指导{:3_53:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马