大数据系列修炼-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

时间: 2024-09-30 00:12:37

大数据系列修炼-Scala课程03的相关文章

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

Scala中继承实现:超类的构造.字段重写.方法重写 关于超类的构建:超类可以在子类没有位置的限制,可以在子类中调用父类的方法 类中字段重写:在重写字段前面加一个override就可以重新赋值 类中方法重写:与字段重写差不多,参数,方法名也要相同 class Person1(val name : String, var age : Int){ println("The primary constructor of Person") val school = "BJU"

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

关于Scala中的正则表达式与模式匹配结合的正则表达式Reg 正则表达式的实现:正则表达式的定义与其它语言差不多,只需在表达式后加一个.r,并且可以遍历相应的表达式进行匹配 //定义的正则表达式 val regex="""([0-9]+) ([a-z]+)""".r //由数字与字母组成的常量 val numPattern = "[0-9]+".r //由数字组成的常量 val numberPattern = "&q

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

由于昨天下班后有点困,就没有来及写博客,今天会把它补上!把这个习惯坚持下去! 关于Scala高阶函数详解 1.Scala高阶函数代码实现:高阶函数就是在我们函数中套用函数 2.高阶函数代码详解:高阶函数能够让方法的调用更加便捷 println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet //(1 to 9)数组中的map方法向数组中放* 用foreach用于来循环 println _ 表

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

接下来会讲解关于各种模式匹配,从中就会知道模式匹配的重要性 关于Type.Array.List.Tuple模式解析 1.Type模式匹配代码解析 //关于Type类型的模式匹配 //匹配 Int类型.string类型.Map类型[_,_]代表任意类型的k,v def match_type(t : Any) = t match { case p : Int => println("It is Integer") case p : String => println("

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

Scala数组操作实战详解 接着昨天的课程,下面我们继续学习关于Scala数组操作详解.Scala数组的定义 //数组定义 //定长数组格式 /** * val arrayName = new Array[datatype](length) * val arrayName = Array(constant1,constant2,....) */ //不定长数组定义格式 /* * var arrayBufferName =ArrayBuffer[datatype]() */ 数组的基本操作:包括截

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

Scala多重继承.构造器的执行顺序.AOP实现 多重继承的trait实现:Scala中接口可以继承具体的类,trait接口可以实现多重继承,并且某个类也可以继承特定的类,在继承后面可以混入,接口的实现 多重继承构造器执行顺序:多重继承构造器执行顺序是从左到右按次序执行,如果前面类以及被继承实现了,后面的类就没有必要去实现,父类只需执行一次 object triatScala { def main(args: Array[String]): Unit = { val t1 = new Piano

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

接着昨天的list,也是学习集合的相关知识 ListBuffer.ArrayBuffer.Queue.stack相关操作 1.ListBuffer.ArrayBuffer代码实现:ListBuffer与ArrayBuffer都是mutable可变的与java中的定义也差不多,可以追加的. 2.Queue.Stack相关操作:队列是一端进去一端出来,而stack也是后进先出的原则,他们都是mutable可变的 import scala.collection.mutable.ListBuffer v

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

今天主要是关于Scala中对List的相关操作,list在Scala中应该是至关重要,接下来会讲解关于List的一系列操作 List的map.flatMap.foreach.filter操作讲解 1.关于List的Map.flatMap操作.区别 2.对List的foreach.filter操作 //list中的Map中用一个函数表达式-->实则是对list进行操作,_可以表示一个函数或者表达式 List(1, 2, 3, 4, 6) map (_ + 1) //> res0: List[In

好程序员大数据教程分享Scala系列之Option_偏函数_String

好程序员大数据教程分享Scala系列之Option_偏函数_StringOption类型在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None).Some包装了某个值,None表示没有值. object OptionDemo {def main(args: Array[String]) {val map = Map("a" -> 1, "b" -> 2)val v = map.get("b