一天学完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


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


相关文章
|
人工智能 自然语言处理 Java
DeepSeek 满血版在 VScode 和 IDEA 中怎么用?手把手教程来了
沉默王二分享了通义灵码的使用教程,这款插件集成了DeepSeek-R1和Qwen等模型,支持Java、Python、Go等多种编程语言,适用于IDEA、VSCode等开发环境。它不仅能提供智能问答、代码补全和Bug修复功能,还能通过“AI程序员”实现多文件代码修改。体验流畅,算力充足,无需担心限流问题。文章详细介绍了安装步骤及各项功能的实际操作,展示了其在提升开发效率方面的强大实力。目前,通义灵码正持续优化,未来将带来更多惊喜。
4698 1
|
10月前
|
IDE Linux 开发工具
IntelliJ IDEA最新版安装下载教程及安装教程(附安装包)
本文介绍IDEA的下载与安装教程,包含获取下载地址、安装步骤及激活方法。需注意安装路径为英文目录,运行激活脚本时需管理员权限。按指引操作即可完成激活并使用。
22039 0
|
Java 应用服务中间件 API
Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)
本文详细介绍了Servlet的开发流程,包括在IntelliJ IDEA中添加Tomcat依赖的详细教程。通过上述步骤,开发者可以快速搭建并运行一个基本的Servlet应用,理解并掌握Servlet的开发流程对于Java Web开发至关重要。希望本文能够帮助开发者顺利进行Servlet开发,提高工作效率。
1749 78
|
人工智能 自然语言处理 Java
IDEA中使用DeepSeek满血版的手把手教程来了!
本文主要介绍阿里云推出的AI编码助手——通义灵码在代码编写、智能问答、bug修复等方面的功能。
IDEA中使用DeepSeek满血版的手把手教程来了!
|
人工智能 自然语言处理 Java
IDEA中使用DeepSeek满血版的手把手教程来了!
IDEA中使用DeepSeek满血版的手把手教程来了!
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
705 0
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
1263 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
793 79
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
476 0
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
403 0