Scala中的类和对象

21 阅读2分钟

1.面向对象

1. 什么是面向对象?

它是一种编程思想,它是基于面向对象的,强调的是以对象为基础完成各种操作。

2. 面向对象的三大思想特点是什么?

(1) 更符合人们的思考习惯

(2) 把复杂的事情简单化

(3) 把程序员从执行者变成指挥者

3. 面向对象的三大特征是

(1) 封装

(2) 继承

(3) 多态

4.什么是类class? 类是属性和行为的集合。

(1) 属性也叫成员变量:名词,用来描述事物的外在特征

(2) 行为也叫成员方法:动词,表示事物能做什么

2.创建类和对象

用class来创建类,用new来创建对象。

//1.定义一个类
  //类名:首字母大写
  //class 类名(){}
  class Student() {

  //属性
  //定义属性和定义变量一致
  var name: String = "小花"
  var age: Int = 18

    //方法
    //定义方法和定义函数一致
    def sayHello(): Unit={
      println(s"我是${age}岁的${name}")
    }
}

  def main(args: Array[String]): Unit = {
    //2.创建对象 (实例化对象)
    //对象名=new类名()

    val st1=new Student()
    //通过 对象.属性名 来访问属性
    println(st1.name)
    //通过 对象.方法名() 来调用方法
    st1.sayHello()
//    val st2=new Student()
//    println(st2)
  }

构造器

//带参数的构造器(构造函数)
  class Student(var name:String="小花",var age:Int=18) {
  //方法
  //定义方法和定义函数一致
  def sayHello(): Unit = {
    println(s"我是${age}岁的${name}")
  }
}

  def main(args: Array[String]): Unit = {
    //new Student()
    //1.调用构造器,第5行。
    //2.没有传入想换的参数,使用默认值。
    val st1=new Student()
    println(st1.name)

    //new Student(“小明”,19)
    //1.调用构造器,第5行。
    //2.传入相关的参数。
    val st2=new Student("小明",19)
    println(st2.name)
  }

三角形类

class Triangle(a:Double,b:Double,c:Double) {
  //计算面积
  def getAera():Double= {
    if (check()) {
      //能否根据三条边长,来计算面积? 海伦公式
      var s = (a + b + c) / 2
      s = s * (s - a) * (s - b) * (s - c)
      return Math.sqrt(s) //Math.sqrt(4)==>2就是开平方操作
    } else {
      print("不能构成三角形")
      return 0;
    }
  }
  //检查是否能够成三角形
  def check():Boolean={
    //任意两边之和大于第三边
    return (a+b) > c && (b+c)>a && (a+c)>b
  }
}

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

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