类calss:
(1) 属性也叫成员变量:名词,用来描述事物的外在特征
(2)行为也叫成员方法:动词,表示事物能做什么
!用class来创建类,用new来创建对象
构造函数与辅助构造函数
object scala42 {
class Student(var name:String) {
//calss类
def sayHello():Unit = {
println(s"我是${name}")
}
}
def main (array: Array[String]): Unit = {
//实例化类的对象 stu
val stu = new Student("小花")
//调用对象的方法
stu.sayHello()
}
}
package level01
//构造函数
//(1)主构造函数
//(2)辅助构造函数
// 特点:名字就叫this 它的代码的第一行必须是调用主构造器 可以有多个
object scala42 {
class Student(var name:String,var age:Int) {
println("Student构造函数被调用")
//辅助构造函数
def this(name:String){
this (name,15)
}
}
def sayHello():Unit = {
println(s"我是 ${name},今年 ${age}")
}
def main (array: Array[String]): Unit = {
//实例化类的对象 stu
//new的时候,就会自动调用一次构造函数
val stu = new Student("小花",18)
//调用对象的方法
stu.sayHello()
val stu1 = new Student("小明")
stu1.sayHello
}
}
private
package level02
object scala01 {
//private: 私人的,私有的
//private: 修饰之后 它就是私有的 在类的外部无法被访问 只能在类的内部被访问
class Student(var name:String,var age:Int) {
//私有属性
private val phoneNum : String = "158xxxx"
//私有方法
private def hobby(): Unit = {
println(s"我的个人爱好是隐私信息....${phoneNum}")
}
def sayHello():Unit = {
println(s"我是${name},今年${age}")
hobby()//在类的内部,可以访问私有成员
}
}
def main(args: Array[String]): Unit = {
//实例化类的对象stu
//new 的时候,就会自动调用一次构造函数
val stu = new Student("小花",18)
stu.sayHello()
}
}
toString
package level02
object scala01 {
//目标:让对象被打印的时候,输出信息更友好一些
//做法:重写 toString方法
//在使用println输出一个对象的时候,它会自动调用toString方法,并输出这个方法的返回值!
class Student(var name:String,var age:Int){
override def toString: String = s"Student(${name},${age})"
}
def main(args: Array[String]): Unit = {
val stu1 = new Student("小花",18)
val stu2 = new Student("小明",19)
//打印输出一个对象,输出的信息不友好
println(stu1)
println(stu2)
}
}