在这个学习阶段主要是面向对象的基础,写了一个日常生活中洗衣机洗衣服的逻辑,当然还不完善,还需要改进,直接通过代码来看吧
/*
* 面向对象(一)
* 利用基本数据类型来描述复杂的数据类型
*
* 描述一个矩形:长,宽
*
*
* */
//描述矩形,包含长和宽两个属性
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 ++;
}
}
}