9.1.1、Scala__scala语言概述,scala与Java,伴生对象,伴生类

Scala系列文章目录


作者:Loves_dccBigData


# 前言

1、scala概述

Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言
(由Java发展而来,Java有gc机制,scala都有)

2、scala与Java的关系

编写–编译(生成字节码文件)–运行
在这里插入图片描述

3、初识scala

object:关键字,声明一个单例对象(伴生对象)
scala没有static关键字,引入object伴生对象(可以直接通过类名.方法调用),object本身就是对象

main方法:从外部可以直接调用执行的方法
def 方法名称(参数名称,参数类型):返回值类型(Unit相当于void)={方法体}

main方法必须放在object中才可以调用 Java中main方法是由虚拟机调用的 通过类对象调用的
类对象:代码经过编译后生成的.class字节码文件加载到内存的一个对象 //伴生类和伴生对象一起的,可以相互访问
//没有static关键字,使用伴生对象实现对常量的赋值等操作

class Students(name: String, age: Int) {
    
    
  def printInfo(): Unit = {
    
    
    println(name + age + Students.school)
  }
}
//引入伴生对象,在伴生对象中有个apply方法,调用时可以省略
object Students{
    
    
  val school:String = "dfg"	//常量

  def main(args: Array[String]): Unit = {
    
    
    val stu = new Students("df",15)
    println(stu)
  }
}
class B1(id: String, name: String) {
    
    
  val _id: String = id
  val _name: String = name
}
伴生对象中有个apply方法专门用于new一个类,调用的,样例类
object B1{
    
    
  def apply(id:String,name:String):B1 = {
    
    
    val df: B1 = new B1(id,name)
    df
  }
}

调用

val dfg: B1 = B1.apply("1001","dfg")
println(dfg._id)		//调用apply方法apply可以省略

4、scala的导包

<!--导入scala的模块-->
<dependencies>
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.11.12</version>
    </dependency>

    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-compiler</artifactId>
        <version>2.11.12</version>
    </dependency>

    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-reflect</artifactId>
        <version>2.11.12</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- Java Compiler -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

        <!-- Scala Compiler -->
        <plugin>
            <groupId>org.scala-tools</groupId>
            <artifactId>maven-scala-plugin</artifactId>
            <version>2.15.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

提示:以下是本篇文章正文内容

猜你喜欢

转载自blog.csdn.net/nerer/article/details/121244089