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");
    
  }
}

 

posted @ 2017-07-03 13:30  jialiming  阅读(799)  评论(0)    收藏  举报