Scala是面向对象编程语言
class Cat {
var name: String = ""
var age: Int = _
var color: String = _
override def toString = s"Cat($name, $age, $color)"
}
object CatDemo {
def main(args: Array[String]): Unit = {
val cat = new Cat
cat.name = "小白"
cat.age = 10
cat.color = "白色"
println(cat)
}
}
类和对象的区别
属性/成员变量
创建对象语法
object CreateObj {
def main(args: Array[String]): Unit = {
val emp = new Emp
val emp2:Person= new Emp
}
}
class Person{
}
class Emp extends Person{
}
object MemState {
def main(args: Array[String]): Unit = {
val p1 = new Person2
val p2 = p1
println(p1 == p2)
p1.name = "xx"
p1.age = 26
println(p2)
}
}
class Person2 {
var name:String = ""
var age:Int = _
override def toString = s"Person2($name, $age)"
}
Scala构造器
class MyPerson(inName:String,inAge:Int) {
var name:String = inName
var age:Int = inAge
age += 10
println("------------------")
override def toString: String = {
"name="+this.name+"\t age="+this.age
}
println("ok-------")
println("age="+age)
def this(name: String){
this("jack",10)
this.name = name
}
}
object CreateObj {
def main(args: Array[String]): Unit = {
val emp = new Emp
val emp2:Person= new Emp
}
}
class Person{
}
class Emp extends Person{
}
构造器注意事项
构造器参数
object Demo1 {
def main(args: Array[String]): Unit = {
val worker = new Worker("jack")
worker.name // worker.inName 不可访问
val worker2 = new Worker2("jack")
worker2.inName
worker2.name
val worker3 = new Worker3("jack")
worker3.inName
worker3.name
}
}
class Worker(inName:String){
var name = inName
}
class Worker2(val inName:String){
var name = inName
}
class Worker3(var inName:String){
var name = inName
}
Bean属性
import scala.beans.BeanProperty
object BeanPropertDemo {
def main(args: Array[String]): Unit = {
val car = new Car
car.setName("奔驰")
println(car)
}
}
class Car {
@BeanProperty
var name:String = null
override def toString = s"Car($name)"
}