类的声明:一个源文件中可以包含很多类,默认都是public级别
getter 和 setter
class Person {
//可生成set与get方法
var name : String = _
//常量,只能生成get方法
val age = 10
//私有的变量,只能再本类中使用
private[this] var gender = "male"
}
object scalaDemo5{
def main(args : Array[String]){
var p = new Person
p.name="zhangSan"
println("name:"+p.name+"\tage:"+p.age)
}
}
构造函数(primary constructor & auxiliary constructor)
• 继承(extends)
• 重写⽗父类⽅方法(override def)
• 重写字段(override val , override var)
//主构造方法
class Fruit(name: String, price: Float) {
println("主构造函数被调用")
var weight: Float = _
def this(name: String, price: Float, weight: Float) {
this(name, price)
this.weight = weight
}
val str = "父类的"
def print() {
println("水果:" + name + "共" + (price * weight) + "元")
}
}
//子类继承父类
class Apple(name: String, price: Float) extends Fruit(name, price) {
println("子类构造函数被调用")
override def toString = "重新toString"
override val str ="子类的"//重写父类的str
}
object scalaDemo5 {
def main(args: Array[String]) {
var f = new Fruit("苹果", 1.5f, 3.6f);
f.print()
var a = new Apple("红富士苹果", 1.5f);
a.print()
println(a.toString())
println(a.str)
}
}