大数据系列修炼-Scala课程03

前言

今天上班看了很多关于前端js,jQuery、bootstrap.js以及springMVC看得迷迷糊糊的,毕竟以前很少去学习前端的技术,所有看得有点困,还好看得比较多,回家后也开始学习关于Scala相关的课程,实验一下每天坚持做大数据相关的事情,一年后会成为什么样子......期待中....,今天也接着昨天的课程继续。

Scala内部类实战详解

Scala内部类详解:scala中内部类要访问外部类直接把外部类的对象给内部类了,让其自己访问,内部类也需要实例化,这和java中有很多的区别,内部类可以访问外部类任意成员变量并且不能为静态变量

Scala内部类实战:实现内部类访问外部类

object scalaOuter {
  def main(args: Array[String]): Unit = {
    val outer1 = new Outer("Spark");
    val outer2 = new Outer("Hadoop")
    val inner1 = new outer1.Inner("Scala")
    val inner2 = new outer2.Inner("Java")
    inner1.foo(inner1)
    inner2.foo(inner2)
  }
}
class Outer(val name: String){
  //scala中内部类要访问外部类直接把外部类的对象给内部类了,让其自己访问,内部类也需要实例化
  outer =>class Inner(val name:String){
    def foo(b:Inner)=println("Outer: "+outer.name + "Inner:" + b.name)
  }
}

Scala单例对象、伴生对象实战详解

Scala单例对象详解:单例对象可以直接访问中公有的方法和变量,这与java静态类差不多

Scala伴生对象代码实战:伴生对象就是有一个类与这个对象名称、参数都一样,这个类可以访问它的伴生对象中所有的变量和方法(私有都可以)

object ScalaObject {
  def main(args: Array[String]): Unit = {
    //University.studentNo   ->这样就会报错
    println(University.newStudenNo)
    println(University.newStudenNo)
  }
}
// Scala中object对象就好比java中的静态类一样
object University {
  private var studentNo = 0 //私有的变量是不可以外部访问
  def newStudenNo = {
    studentNo += 1
    studentNo //函数的最后变量为返回值
  }
}
//伴生类
class University{
  val id = University.newStudenNo
  private var number =0
  def aClass(number:Int){this.number += number}
}

Scala中的apply实战详解

Objec中的apply实战详解:apply方法可以用在class中和对象中,可在伴生对象中实例化class,从而调用类中的方法

Class中的apply实战详解:类实例化后,对象()就可以调用apply方法

object ApplyOps {
  def main(args: Array[String]): Unit = {
//    val applyTest = ApplyOp() //直接用伴生对象访问类中的方法 ->在伴生对象中已经new了对象,则可以访问其中的方法
//    applyTest.haveAtry
    var b = new ApplyOp()
    println(b())
  }
}
//ApplyOp类的伴生对象
object ApplyOp{
  def apply() =
  {
    println("Object ApplyOp")
    new ApplyOp
  }
}
//ApplyOp对象的伴生类
class ApplyOp{
  def apply() =
  {
    println("Class ApplyOp")
  }
  def haveAtry{
    println(" Have a try on apply")
  }
}

希望大家多多指教,谢谢

视频分享地址:http://pan.baidu.com/s/1pJ9n3JH

原文地址:https://www.cnblogs.com/524646016-zhang/p/zhangsh_dt_scala_03.html