大数据全系列 教程
1869个小节阅读:465.5k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
创建对象测试:
xxxxxxxxxx
package com.itbaizhan.chapter05
//伴生类和伴生对象
object Accompanying {
def main(args: Array[String]): Unit = {
var userJava = UserJava.getInstance()
val userScala: UserScala = UserScala.getInstance()
}
}
深入探索:
xxxxxxxxxx
package com.itbaizhan.chapter05
//伴生类和伴生对象
object Accompanying {
def main(args: Array[String]): Unit = {
/*var userJava = UserJava.getInstance()
val userScala: UserScala = UserScala.getInstance()*/
//TODO 3.演示几种对象的不同创建方式
/*val person1: Person = Person.apply()
println(person1)
//上行代码输出com.itbaizhan.chapter05.Accompanying$Person@2ff4f00f
*/
val person2: Person = Person()//调用的伴生对象的apply方法
val person3 = new Person()//调用类的构造方法
val person4 = Person//调用伴生对象本体
//val person4: Person.type = Person//同上
println(person4)//com.itbaizhan.chapter05.Accompanying$Person$@2ff4f00f
//TODO 4.apply方法演示
for(ele <- Range(1,5,2)){//Range(1,5,2)调用的就是Range的apply方法
print(ele+",")// 1,3,
}
}
class Person(){
}
//TODO 1.伴生对象本身就是单例的,只需要声明,不需要构造参数列表
//object Person(){//错误的
object Person{
//TODO 2.如果伴生对象的方法名为apply,编译器可以自动识别,所以这个方法可以省略
def apply(): Person ={
println("apply()...")
new Person()
}
}
}
实时效果反馈
1. 关于Scala伴生类和伴生对象的描述,错误的是:
A 伴生类使用class定义。
B 伴生对象使用object定义,并且和对应的伴生类同名。
C 非静态的属性和方法写在伴生类中。
D 静态的属性和方法写在伴生类中。
2. val person: Person = Person()
关于Person()描述正确的是:
A 调用类的构造方法。
B 调用的伴生对象的apply方法。
C 调用伴生对象本体。
答案:
1=>D 静态的属性和方法写在伴生对象中。
2=>B