Java 理解类和对象:汽车类的设计

/*
假设某赛车游戏中,汽车涉及如下内容:车主、品牌、颜色,能够进行启动、前进、后退、停止、熄火等动作,并要求,
若汽车已经启动,就不能重复启动;若汽车处于熄火状态,不能执行除启动外的其它动作。
另外,要能够直接打印出汽车对象的信息。请完成汽车类的设计,其中各项动作给出相关信息提示即可。
*/
class Car{
    String owner,color,brand;
    boolean isStart = false;
    
    Car (String o, String c, String b){ //构造函数
         owner = o; color = c; brand = b;
    }
    void start(){
        if(isStart == true){ 
        	System.out.println("Car已启动,不能重复启动!"); 
        	return; 
        }
        isStart = true;
        System.out.println("Car启动!");
    }
    void forward(){
        if(isStart == false){ 
        	System.out.println("Car未启动,不能前进!"); 
        	return; 
        }
        System.out.println("Car前进!");
    }
    void backward(){
        if(isStart == false){ 
        	System.out.println("Car未启动,不能后退!"); 
        	return; 
        }
        System.out.println("Car后退!");
    }
    void stop(){
        if(isStart == false){ 
        	System.out.println("Car未启动,不能停止!"); 
        	return; 
        }
        isStart = false;
        System.out.println("Car停止!");
    }
    void flameout(){
        if(isStart == true){ 
        	System.out.println("Car未停止,不能熄火!"); 
        	return; 
        }
        System.out.println("Car熄火!");
    }
     public String toString(){ //必须有public、返回必须是String型、必须无参
        return "\n车主:"+owner+"\n颜色:"+color+"\n品牌:"+brand;
    }
}
class App{
    public static void main(String[] x){
        Car c = new Car("小蓝","红色","法拉利"); 
        //Car c1=new Car(); //此句编译错,若类中有定义构造函数,系统将不再提供默认无参构造函数
        System.out.println(c);
        c.start();
        c.forward();
        c.backward();
        c.flameout();
        c.stop();  
    }
}

在这里插入图片描述

//本例掌握:
1、类=数据+操作,例如Car中有数据/属性:颜色、品牌等;有操作start()、forward()等,类中的属性可以在该类的方法中直接使用,如start()可直接使用isStart ;
2、类和对象的关系:类就是对象的设计图纸;对象就是基于图纸产生的实体。类比 Car 类,相当于图纸,图纸不能前进、熄火等,即Car.start()、Car.stop()是错误的。对象是可以执行动作的,如c.forward() 等,因此,必须先创建对象(即new Car(…)),然后才能执行该对象关联的方法;
3、构造函数,特点:与类同名,不能有返回类型,不能用return返回值
另外,若类中【未定义】构造函数,系统将自动补充一个默认的无参构造函数;
若类中【已经定义】构造函数,系统就不在补充任何构造函数;
构造函数的作用:对属性进行初始化
4、public String toString(),特点:必须有public、返回必须是String型、必须无参
这个函数会被System.out.print()在 打印对象时 自动调用;若函数有参,打印对象将会是乱码。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值