大数据学习24:Scala面向对象:类似Java

第二章:Scala面向对象:类似Java
一、复习:面向对象的基本概念

	(*)定义:把数据和操作数据的方法放到一起,作为一个整体(类 class)
	(*)面向对象的特质:
		(1)封装
		(2)继承
		(3)多态

二、定义类class

三、属性的get和set方法

class StudentBean {
//定义属性
  private var stuName = "Tom"
  private var stuAge = 20

  //成员方法

  def getStuName():String = stuName
  def setStuName(newName:String) = this.stuName = newName


  override def toString = s"StudentBean($stuName, $stuAge, $getStuName)"

}

//注意:Object和Class的名字可以不一样,如果一样了,这个object就叫做class的伴生对象
object StudentBean{
  var s1 = new StudentBean
  println(s1)
}

四、内部类(嵌套类):在类的内部,又定义了一个类

	举例:创建类,保存学生和学生考试成绩(科目 成绩)
import scala.collection.mutable.ArrayBuffer

class StudentBean1 {
  //定义学生属性
  private var stuName:String = "Tom"
  private var stuAge:Int = 20

  //定义一个可变数组保存学生的课程成绩
   var courseList = new ArrayBuffer[Course]()

  //定义一个函数用于添加学生的课程成绩
  def addNewCourse(cname:String,grade:Int){
    //创建课程的成绩信息
    var c = new Course(cname,grade)

    //添加到学生对象中
    courseList +=  c
  }

  class Course (var  coueseName:String ,var grade:Int){
    //定义其他的函数
  }
}

五、类的构造器

	1、主构造器:跟类名写在一起,只能有一个主构造器
	2、辅助构造器:可以有个多个,关键字 this 

大数据学习24:Scala面向对象:类似Java_第1张图片
大数据学习24:Scala面向对象:类似Java_第2张图片
六、Object对象(相当于Java中的static)

	1、在Object对象中的所有内容都是静态的
	2、举例(1):实现单例模式:一个类只有一个对象
	   举例(2):省略main方法,objec对象需要继承App父类

七、apply方法:作用:使得程序简单,省略new关键字

大数据学习24:Scala面向对象:类似Java_第3张图片

八、继承:Scala和Java一样,使用extends关键字扩展类。
例子:参考讲义

大数据学习24:Scala面向对象:类似Java_第4张图片
大数据学习24:Scala面向对象:类似Java_第5张图片

九、特质(trait):当成Java中的抽象类,支持多重继承(像Java的接口)
trait就是抽象类。trait跟抽象类最大的区别:trait支持多重继承
大数据学习24:Scala面向对象:类似Java_第6张图片
十、包和包对象: 参考讲义

第三章:Scala函数式编程(最有特色):核心概念—> 把一个函数作为另一个函数参数的值传递过去
一、回顾:Scala函数:def关键字

二、什么是匿名函数:没有名字的函数

大数据学习24:Scala面向对象:类似Java_第7张图片
三、带函数参数的函数:也叫:高阶函数
把一个函数作为另一个函数参数的值传递过去
一个函数的参数值是另一个函数
在这里插入图片描述
大数据学习24:Scala面向对象:类似Java_第8张图片
四、闭包(函数的嵌套)、柯里化

大数据学习24:Scala面向对象:类似Java_第9张图片

五、示例:常用的高阶函数

你可能感兴趣的:(大数据学习24:Scala面向对象:类似Java)