(一) case class的定义
package caseclass01
object l1 {
case class Student(var id:String,var name:String) {
//override def equals(obj:Any):Boolean={
// val other=obj.asInstanceof[Student]
//other.id==id && other.name==name
// }
}
def main(args: Array[String]): Unit = {
val stu1= new Student("1","小花")
val stu2= new Student("1","小花")
println(stu1)
println(stu1 == stu2)
val set1=scala.collection.mutable.Set(stu1,stu2)
//val set1=Set(1,2,3,1,1,1)
println(set1)//?
}
}
- case class(样例类) v.s. class(类)
- 1.case class 可以在定义对象时,省略new
- 2.case class 的属性在默认情况下是只读的。如果希望可以修改,那需要主动使用var.
- 3.case class 会自动重写 equals,toString......
package caseclass01
/*
*
* case class(样例类) v.s. class(类)
* 1.case class 可以在定义对象时,省略new
* 2.case class 的属性在默认情况下是只读的。如果希望可以修改,那需要主动使用var.
* 3.case class 会自动重写 equals,toString......
*
* 当我们只需要使用类来表示数据的时候,就可以选择使用case class,它更加简单!
*
*
*/
object l2 {
case class Student1(var id:String,var name:String) {
}
class Student2(var id:String,var name:String) {
}
def main(args: Array[String]): Unit = {
val stu1= new Student2("1","小花")
val stu2= new Student2("1","小花")
println(stu1 == stu2)
println(stu1)
println(Student1("1","小花"))
}
}
1. 使用case class创建图书信息类Book:包含四个属性:ID,书名,作者,价格,数量。
2. 创建一个名为BookList的可变List,它只能用来保存Book的实例。
3. 初始化三本不同的书(注意id不同就是不同的书),加入到BookList中。
4. 添加一本已经存在的书。此时应该去修改BookList中对应书目的数量,而不是去添加一条新数据。
5. 根据图书名称查询是否在列表中(通过遍历列表对比名称)
6. 删除指定书名的书
7. 删除指定ID的书
8. 对于图书按价格从高到低排序。
9. 遍历图书列表,并打印每本书的详细信息
10. 计算全部总的金额
package caseclass01
object l3 {
//1
case class Book(id:String,name:String,author:String,price:Double,amount:Int) {
}
def main(args: Array[String]): Unit = {
//2
val book1=Book("1","凡人修仙记","忘语",80.5,10)
val book2=Book("2","霸道总裁爱上我","忘语1",50,9)
val book3=Book("3","重生之我的十八岁太奶","忘语",20,5)
//3
val bookList=scala.collection.mutable.ListBuffer(book1,book2,book3)
//7
val id="1"
val rst=bookList.find(book=>book.id == id)
if(rst.isDefined){
bookList -= rst.get
println(s"删除成功")
}
//8
//val sortList=bookList.sortBy(_.price)
val sortList=bookList.sortWith((a,b)=>a.price>b.price)
//9
bookList.foreach(ele =>{
println(s"${ele.id} ${ele.name} ${ele.author} ${ele.price} ${ele.amount}")
})
//10
var total:Double=0;
bookList.foreach(ele =>{
total += ele.price*ele.amount
})
println(s"中的价值是:${total}")
}
}
caseclass
1.case class的定义
2.case class 的特点
3.case class 与普通class的区别