Scala学习2——idea配置scala环境,scala初步学习

了解Scala

使用Java Decompiler反编译字节码到.class源文件可以看到引入Scala库的逻辑。并且:

  • scala源文件中的HelloScala对象编译后成为了一个类,但对象本身编译后就是生成的另一个类HelloScala$类的单例对象HelloScala$.MODULE$,称之为伴生对象。
  • HelloScala$有一个main实例方法,HelloScala类的静态方法通过这个单例对象转调这个实例方法。完成打印。
  • 说明Scala比Java更面向对象。

使用idea编写Scala项目

1.新建maven项目

 

 2.安装Scala插件

 3.右键单击项目添加scala支持

 

 4.创建scala类

 5.运行(idea有代码补全会舒服很多)

 

 

尝试调用java类库

System.out.println("hello scala from java")

scala删除了static关键字更好的实现了面向对象,体现:

java中,static关键字的使用的一个举例

public class Student{
    private static String school = "std";

     public void printInfo(){
        System.out.println(Student.school)
    }   
}
    

但是这并不完全的”面向对象“,因为static关键字的存在,调用时,使用的是School这个类而不是一个对象

而在scala中,使用伴生对象与伴生类的关系,解决了这个问题,使得Scala更加得“面向对象”

class Student(name:String,age:Int) {
  def printInfo() : Unit = {
    println(name + "" + age + "" + Student.school)

  }
}

//引入伴生对象
object Student{
  val school : String = "std"
}

class Student是object Student的伴生类;object Student是class Student伴生对象。彼此相伴相生,互相之间可以访问彼此的私有成员

测试一下

class Student(name:String,age:Int) {
  def printInfo() : Unit = {
    println(name + " " + age + " " + Student.school)

  }
}

//引入伴生对象
object Student{
  val school : String = "std"

  def main(args: Array[String]): Unit = {
    val alice = new Student("alice",20)
    alice.printInfo()
  }
}

明天学习scala中的数据类型

原文地址:https://www.cnblogs.com/Arisf/p/15757831.html