3.3: scala中静态方法实现

刚才我们讲到了scala语言的数据类型和方法的定义,但是我们都是在命令行的方式写的,如果我们开发一个项目或者工程的话,不可能一直这样写代码的,所以肯定需要使用IDE工具,目前来讲scala编辑器有两个是用的比较好的,一个是IDEA , 一个是Eclipse。 大家可以根据个人喜好来选择,我这里会给大家讲IDEA 

IDEA的安装包我也会一并发给大家, 安装都是非常简单的,下一步下一步就安装好了的。

刚安装好的时候,默认启动会出现这个界面, 然后大家点击 "skip all and set defaults"


然后我们就要按照scala的插件。

1.安装Scala插件:Configure -> Plugins -> Install plugin from disk -> 选择Scala插件 -> OK -> 重启IDEA



那这样scala插件就安装好了,重启一下IDEA即可使用

那我们上一讲中提到了scala中没有静态方法,但是我们一定要实现静态方法的话,该怎么来做呢?

Scala中有一个object的东西,和java里面的object完全不一样,java中的Object是所有类的超类。 而scala中的object称之为伴生对象, 我们来写一个实现静态方法的代码:

/**
  * Created by shuilin on 2018/3/1.
  */
object TestStaticMethod {

  def main(args: Array[String]) {
    //静态方法调用,直接通过定义object下面的方法实现
    Test.printName("jack")
    //这种方式定义的方法是面向对象实现。
    //采用new 关键字,创建一个实例对象a,其实就是TestStaticMethod类这个模型出来的其中一个实例
    val a = new TestStaticMethod
    val b = new TestStaticMethod
    b.sayHello("tom")
    a.sayHello("jack")
  }
}

object Test{
  def printName(name:String): Unit ={
    println("print name is :"+name)
  }
}

/**
  * 什么叫class , class是类,类就像是一个模板,定义一个类之后就像是把一个模板定义好了
  * 这里我打一个简单的比方,比如类比喻成车子的模具,
  * 然后new 一个实例对象的时候,就好像是拿着这个模具生产出来的一辆真实的车
  * 我们可以拿着这个模具生产很多量外形和功能一模一样的车,但是每一辆都是一个独立的个体
  *
  * 这个是我认为最好理解的一种面向对象的思想
  */
class TestStaticMethod{
  def sayHello(name:String): Unit ={
    println("hello " + name +",how are you!")
  }

}

大家有没有发现我这次定义的add方法和上一次稍微有些不一样,但是程序并没有报错,对吧。

这是因为scala自身的类型推断的原因,返回值类型不声明的时候,程序会自动推断返回值的类型

当以后阅读spark源代码的时候,大家会看到非常多类似的代码


猜你喜欢

转载自blog.csdn.net/zhoushuilin/article/details/79394341
3.3
今日推荐