大数据全系列 教程
1869个小节阅读:467.6k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
和Java一样,Scala中构造对象也需要调用类的构造方法来创建。并且一个类中可以有任意多个不相同的构造方法。这些构造方法可以分为2大类:主构造函数和辅助构造函数。
xxxxxxxxxx
package com.itbaizhan.chapter04
//构造方法
object ConstructMethod {
def main(args: Array[String]): Unit = {
//1.默认提供一个无参的公共的构造方法
val student = new Student()
}
class Student{
//2.scala中构造方法的名称和类名是不一致的。
// 如下不是构造方法,而只是一个普通的方法
def Student() ={
println("Student()被调用了")
}
}
}
主构造方法与辅助构造方法
xxxxxxxxxx
package com.itbaizhan.chapter04
//构造方法
object ConstructMethod {
def main(args: Array[String]): Unit = {
//1.默认提供一个无参的公共的构造方法
val student = new Student()
//4.如果在类定义时使用了有参主构造方法,那么jvm就不再提供默认的无参构造方法了
val student1 = new Student("tuhao")
}
//3.类名后面使用(),里面添加构造参数列表。该种构造方法被称为主构造方法
//class Student(name:String){
class Student(){
//var name:String = name //可以将主构造方法的参数为属性赋值
var name:String = _
var age:Int = _
//5.辅助构造方法使用this关键字+() 或 this+(参数列表)
def this(name:String){
this()
this.name = name
println("this(name)")
}
//6.只能通过this调用一次另外的构造方法.
//7.只能调用之前声明的构造方法
def this(age:Int){
this() //正确的
//this("")//正确的
//this("",age) //错误的,只能调用之前声明的构造方法
this.age = age
}
def this(name:String,age:Int){
//this()
this(name)
this.age = age
}
//2.scala中构造方法的名称和类名是不一致的。
// 如下不是构造方法,而只是一个普通的方法
def Student() ={
println("Student()被调用了")
}
}
}
实时效果反馈
1. 关于Scala构造方法的描述,错误的是:
A scala中构造方法的名称和类名是不一致的。
B 如果在类定义时使用了有参主构造方法,那么jvm还会提供默认的无参构造方法。
C 辅助构造方法使用this关键字+() 或 this+(参数列表)。
D 类名后面使用(),里面添加构造参数列表。该种构造方法被称为主构造方法。
答案:
1=>B 如果在类定义时使用了有参主构造方法,那么jvm就不再提供默认的无参构造方法了。