kotlin学习(二)

来源:互联网 发布:matlab矩阵迭代算法 编辑:程序博客网 时间:2024/05/16 00:43

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

/** 面向对象(一)* 利用基本数据类型来描述复杂的数据类型** 描述一个矩形:长,宽*** *///描述矩形,包含长和宽两个属性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 ++;        }    }}
原创粉丝点击