一天学完spark的Scala基础语法教程十、类和对象(idea版本)

简介: 一天学完spark的Scala基础语法教程十、类和对象(idea版本)

创建测试类【day1/demo10.scalc】,类型为【Object】

image.png

image.png

Scala 类和对象

类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。

示例

package day1
object demo10 {
  def main(args: Array[String]): Unit = {
    var de=new demo10_class();//通过new创建对象
    println(de.toMax(5,6))
  }
}
class demo10_class{
  def toMax(x:Int,y:Int):Int={
    if(x>y){
      return x;
    }
    return y;
  }
}

image.png

【class】类关键字

class关键字修饰的是类,只有通过class修饰的类才能被【new】创建,这里就不能再次创建【object】类型了,可以自行测试,会报错的。


new,在内存中创建出一个地址,存储了这个类的信息。


var de=new demo10_class();//通过new创建对象

对象

对象就是一个特指,这个对象有其自身的【属性】以及【方法】。


例如:单独说公交车,它是一个类,但是你要说,石家庄车牌为冀A *****的1路公交车,那么它就是对象,有具体的针对性。


Scala 继承

Scala继承一个基类跟Java很相似, 但我们需要注意以下几点:


1、重写一个非抽象方法必须使用override修饰符。

2、只有主构造函数才可以往基类的构造函数里写参数。

3、在子类中重写超类的抽象方法时,你不需要使用override关键字。

接下来让我们来看个实例:


package day1
object demo10 extends demo10_class {
  def main(args: Array[String]): Unit = {
    //由于继承了【demo10_class】类,故而可以直接使用
    println(toMax(51,6))
  }
}
class demo10_class{
  def toMax(x:Int,y:Int):Int={
    if(x>y){
      return x;
    }
    return y;
  }
}


image.png


重写

这里我就留了一个简单的实例重写,继承了父类,所以可以直接用super


package day1
object demo10 extends demo10_class {
  //重写
  override def toMax(x: Int, y: Int): Int = super.toMax(x, y)
  def main(args: Array[String]): Unit = {
    //由于继承了【demo10_class】类,故而可以直接使用
    println(toMax(51,66))
  }
}
class demo10_class{
  def toMax(x:Int,y:Int):Int={
    if(x>y){
      return x;
    }
    return y;
  }
}


image.png


功能依然都是正常可用的。


相关文章
|
2月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
45 0
|
2月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
101 0
|
1月前
|
Java 程序员 编译器
Scala 基础语法
Scala 基础语法
32 2
|
2月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
65 0
|
2月前
|
缓存 分布式计算 大数据
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(一)
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(一)
61 0
|
2月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
69 5
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
56 3
|
2月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
41 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
2月前
|
分布式计算 算法 大数据
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(二)
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(二)
63 0
|
6月前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
74 0