scala 基础八 scala 类的定义及构造器
1.scala 中无构造方法的普通类定义
package smart.iot
//scala中类的默认是public 的,而且一个源文件中可以包含多个public 类,源文件中的类名,可以和定义的类名 不一样
class Person {
val name:String ="james";
//在普通类中不允许有一个为指定值得成员变量,如果不想给一个真实的值,可以用_站位符来替代
var age:Int=_
}
object Person
{
def main(args: Array[String]): Unit = {
//无参构造函数可以不用加括号
var person=new Person;
println(person.name);
person.age=18;
println(person.age);
}
}
result:
james
18
2.scala 类中的getter,setter
package smart.iot
//scala中类的默认是public 的,而且一个源文件中可以包含多个public 类,源文件中的类名,可以和定义的类名 不一样
class Person {
val name:String ="james";
//在普通类中不允许有一个为指定值得成员变量,如果不想给一个真实的值,可以用_站位符来替代
var age:Int=_
//定义一个私有变量
private[this]var gender:String =_
//设置一个get构造器
def GetGender:String=
{
this.gender
}
//设置一个set构造器
def SetGender(gender:String)
{
this.gender=gender
}
}
object Person
{
def main(args: Array[String]): Unit = {
//无参构造函数可以不用加括号
var person=new Person;
println(person.name);
person.age=18;
println(person.age);
person.SetGender("boy")
println(person.GetGender)
}
}
3.scala中带参的构造函数
package smart.iot
//带参的构造器,在类后面指定参数,构造器的参数会被变异成类的成员变量
class BookClass(var name:String,var price:Int) {
}
object BookClass
{
def main(args: Array[String]): Unit = {
var book=new BookClass("spark",200);
println(book.name+" "+book.price);
}
}
4.scala 构造函数中不带var 或者val 的参数定义
package smart.iot
//带参的构造器,在类后面指定参数,构造器的参数会被变异成类的成员变量
class BookClass( name:String, price:Int) {
def GetName:String=
{
this.name;
}
def GetPrice:Int=
{
this.price
}
}
object BookClass
{
def main(args: Array[String]): Unit = {
var book=new BookClass("spark",200);
println(book.GetName+" "+book.GetPrice);
}
}
5.扩展构造器
package smart.iot
//带参的构造器,在类后面指定参数,构造器的参数会被变异成类的成员变量
class BookClass( name:String, price:Int) {
private [this] var author:String=_
//附属构造器,扩展主构造器
def this(name:String,price:Int,author:String)
{
//第一行必须调用主构造器
this(name,price)
this.author=author;
println("Name:"+name+" price:"+price+" author:"+author)
}
def GetName:String=
{
this.name;
}
def GetPrice:Int=
{
this.price
}
def SetAouthor(author:String)
{
this.author=author;
}
}
object BookClass
{
def main(args: Array[String]): Unit = {
var book=new BookClass("spark",200,"aaaaa");
}
}

浙公网安备 33010602011771号