1 定义类
class Person {
}
2 定义对象
def main(args: Array[String]): Unit = {
***// ctrl+alt+v 自动创建对象***
val peson = new Person
}
3简单方式
// 没有成员变量 和成员方法 可以省略{}
// 构造器为空的 ()可以省略
class Person
def main(args: Array[String]): Unit = {
// 构造器为空的 ()可以省略
val person = new Person
print(person)
}
成员变量的定义及访问
下划线初始化成员变量
注意
创建对象时可以 new xxx.var 快捷方式
定义成员方法和调用成员方法
注意就是 在定义类时 属性 和方法标上+ 号 表示 属性和方法都是共有,如果标上 -
的化时私有(属性和方法)
访问修饰符
注意:私有的成员变量和方法是有修饰符例如 private protected
如何调用构造器
创建住构造器
class Person(var name:String="",var age:Int=0){
print("调用住构造器")
}
创建对象时传参数有三种
1 把参数传满
2 一个也不传
3 指定某个进行传递 age=xx
辅助构造器
注意
单列对象
object Dog {
成员变量
成员方法
}
访问时:Dog.成员
Dog.方法
单例对象可以定义工具类
定义入口
两种方式
第二种方式
伴生对象
要求
注意: 如果伴生类或者伴生对象的属性或者成员 private加了 this ,就不可访问 ,只允许本类访问
apply 方法
apply方法就是快速创建一个对象,就不需要new 了
继承
继承注意:
1 变量的定义类型 只能用 val 不能用var
重写字段或者重写方法
关键字
override 字段
override 方法
super 访问父类的成员(属性 方法)
super.name
super.age
super.sleep
对象类型的判断
用法
对象.isInstanceOf 是判断这个对象是否属于这个类 或者这个对象父类时他
类型的转换符合这个类型就转
val student1 = student.asInstanceOf[Student]
抽象类
继承的快捷键
ctrl +i
匿名类不类
特质(接口)