scala 中可以不需要new 对象,
package kgc
class homework(user:String,password:Int){
//scala 中也有“构造器”
def this(user:String){
this(user,0)
}
def this(){
this("",0)
}
def showInfo(): Unit ={
println(user +""+password)
}
def showInfo(): Unit ={
println(user +""+password)
}
}
object homework {
//可以不用new对象
def apply(user: String, password: Int): homework = new homework(user, password)
def apply(user: String): homework = new homework(user)
def apply(): homework = new homework
println("------")
def showInfo(): Unit ={
println("zheshi object de method")
}
println("----")
def main(args: Array[String]): Unit = {
val a=apply
val b=homework()
val c=homework
b.showInfo()//调的是class中的showinfo方法
a.showInfo()//同上
c.showInfo()//调的是object中的showinfo
homework.showInfo()
val a=new homework("root",1)
a.showInfo()
}
}
scala 的混入特质
package kgc
abstract class Person(){
def eat:String
def drink:String
def walk():Unit={
println("是人呢就会走路")
}
}
trait intreset1{
def dance:String={
"hobby is dance"
}
def sing:Unit
}
trait intreset2{
def football:Unit={
println("hhhh")
}
}
class Student extends Person{
override def eat: String = ???
override def drink: String = ???
}
class Teacher extends Person with intreset1 with intreset2 {
override def eat: String = "chi"
override def drink: String = "he"
override def sing: Unit = println("can sing")
}
object HomeWork2 {
val teacher=new Teacher()
val stu= new Student with intreset1 with intreset2 {
override def sing: Unit = println("can sing")
}
}