• 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中的数据类型

  • 相关阅读:
    [NOIP2011提高组]聪明的质监员
    NOIP 2010 关押罪犯
    题目:埃及分数
    用scanf输入long long 型的数
    poj 1014 Dividing
    Cactus
    SQLite数据库的增删改查代码
    UltraGrid常用方法属性代码
    维护数据表常用SQL语句
    C#备份收藏夹代码
  • 原文地址:https://www.cnblogs.com/Arisf/p/15757831.html
Copyright © 2020-2023  润新知