kotlin学习(二)

在这个学习阶段主要是面向对象的基础,写了一个日常生活中洗衣机洗衣服的逻辑,当然还不完善,还需要改进,直接通过代码来看吧

/*
* 面向对象(一)
* 利用基本数据类型来描述复杂的数据类型
*
* 描述一个矩形:长,宽
*
*
* */
//描述矩形,包含长和宽两个属性
class Rect(var width : Int,var height : Int)
//描述一个美女
class BeautifulGirl(var name : String,var face : String,var age : Int)

fun main(args: Array<String>) {
    //定义了一个矩形
    var rect1 : Rect = Rect(10,10);
    println("矩形的高度:${rect1.height}");
    println("矩形的宽度:${rect1.width}");
    var beautifulGirl : BeautifulGirl = BeautifulGirl("美女","漂亮",20);
    println("美女长的${beautifulGirl.face},她叫${beautifulGirl.name},今年${beautifulGirl.age}岁")

    var girl :Girl = Girl("jj",22,"漂亮","不好听");
    girl.smile()
    girl.song()

    //洗衣机
    var laundry : Laundry = Laundry()
    laundry.open()
    laundry.start()
}

/*
* 面向对象(二)
* 对象有属性
* 对象有行为
* kotlin的静态属性和动态行为
* */
//更加真实的描述一个美女
class Girl(var name :String,var age : Int,var face : String,var song : String){
    //美女笑了一下
    fun smile(){
        println("美女笑了一下,露出了两个酒窝")
    }
    //美女唱歌
    fun song(){
        println("我虽然长的${face},但是唱歌${song}")
    }
}

/*
* 一台可以使用的洗衣机
* 根据洗衣机的工作原理
* (1)用户打开洗衣机开关
* (2)开始设定相关属性,洗衣的类型:普通,漂洗,干洗等,默认为普通,水的多少:默认为桶容量的1/2,时间,默认为30分钟
*  (3)根据设置的参数开始洗衣服
*  (4)洗衣服完成,提醒用户
* */
//定义桶的容量
val CAPACITY : Double= 100.0;
class Laundry(
   //属性
    var type : Int = 1,//洗衣类型
    var water : Double = (CAPACITY/2),//默认为水桶容量的一般
    var time : Int = 30//默认为30分钟
){
    //打开洗衣机
    fun open() : Unit{
        //让用户输入相关信息
        println("请输入洗衣类型:1.普通洗衣,2.漂洗,3.干洗");
        try {
            type = readLine()?.toInt() ?: 1;//如果用户输入了,就使用用户输入的,否则就使用普通模式
        }catch (e : Exception){
            type = 1;
        }
        println("请输入水量:\n \t 1.1/2水桶容量,2.2/3水桶容量,3.3/4水桶容量")
        var waterNum: Int;
        try {
            waterNum = readLine()?.toInt() ?: 1;
        }catch (e : Exception){
            waterNum = 1;
        }
        when(waterNum){
            1 -> water = CAPACITY * (1/2);
            2 -> water = CAPACITY * (2/3)
            3 -> water = CAPACITY * (3/4)
            else -> water = CAPACITY * (1/2);
        }

        println("请输入洗衣时长:1.30min,2.40min,3.50min,4.60min");
        var timeNum : Int;
        try {
            timeNum = readLine()?.toInt() ?: 1;
        }catch (e : Exception){
            timeNum = 1;
        }
        when(timeNum){
            1 -> time = 30;
            2 -> time = 40;
            3 -> time = 50;
            4 -> time = 60;
            else -> time = 30;
        }

    }
    //开始洗衣服
    fun start(){
        var currentTime : Int= 0;
        while (currentTime < time){
            println("正在洗衣服");
            currentTime ++;
        }
        end()
    }

    //洗衣服完成,提醒用户三次
    fun end(){
        var remind : Int = 0;
        while (remind < 3){
            println("洗衣服完成,请取走衣服");
            remind ++;
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值