元组

37 阅读1分钟
object scala18 {

  class Student() {
    var name: String = "小花"
    var age: Int = 18
    def  sayhello():Unit ={
      println(s"我是 ${age} 岁的 ${name}")
    }
  }

  def main (array: Array[String]): Unit = {
    val st1 =new Student()

    println(st1.name)

    st1.sayhello()
    }
}

object scala20 {

  //面向对象编程的三个特点
  //封装,继承,多态
  class Triangle(a:Double,b:Double,c:Double) {
    //计算面积
    def  getAera(): Double = {
      //能否根据三条边长,来计算面积?海伦公式
      var s = (a+b+c)/2
      s = s*(s-a)*(s-b)*(s-c)
      return Math.sqrt(s)//Math.sqrt(4) ==> 2 就是开平方操作
    }
  }

  def main (array: Array[String]): Unit = {
    //Triangle表示一个三角形类
    //Triangle(边长1,边长2,边长3)
    val  t1 = new Triangle(3,4,5)
    println(t1.getAera())//获取面积

    val t2 = new Triangle(4,4,4)
    println(t2.getAera())//获取面积
    }
}



import scala21.Triangle

object scala21 {
  //可以在两个地方写属性
  //1.构造器的参数列表
  //2.构造器内部
  
  //构造器的参数列表:
  //1.val表示不可以被修改的属性
  //2.var表示可以被修改的属性
  //3.没有修饰符,不是对象的属性,无法访问
  class Triangle(val a:Double,var b:Double,c:Double)

  val d:Int = 1
  var e:Int = 2
}
  def main (array: Array[String]): Unit = {
    val t = new Triangle(1,2,3)
    t.b = 2
    //t.c无法访问
    t.
}
object scala20 {
  //主构造器
  class User(val phone:String, var pwd:String) {
    var email:String = ""
    var name:String = ""
   //辅助构造器
    def this(email:String  ,name:String,pwd:String) {
      //调用一次主构造器
      this("",pwd)
      //再对其他的属性赋值
      this.name = name
      this.email = email
    }
    //辅构造器
    def this (email:String  ,name:String,pwd:String,phone:String) {
      //调用一次主构造器
      this(phone,pwd)
      //再对其他属性赋值
      this.name = name
      this.email = email
    }
    def say():Unit ={
      println(s"我的信息如下:")
      println(s"姓名: ${name}")
      println(s"手机号: ${phone}")
      println(s"邮箱: ${email}")
      println(s"密码: ${pwd}")
    }
  }

}