zoukankan      html  css  js  c++  java
  • 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中的数据类型

  • 相关阅读:
    开发报表的先进工具
    强大的报表前端展现功能
    管理驾驶舱监控大屏展现
    换乘算法【转】
    提交中文数据乱码问题总结
    重定向
    容易遗漏的
    jsp基础语法【转】
    说说Java NIO【转】
    Java读取大文件的操作【转】
  • 原文地址:https://www.cnblogs.com/Arisf/p/15757831.html
Copyright © 2011-2022 走看看