本篇是scala快速入门系列的第十七篇博客,为大家带来的是关于类和对象的内容。
scala快速入门系列【类和对象】_框架


类和对象

        scala是支持面向对象的,也有类和对象的概念。我们依然可以基于scala语言来开发面向对象的应用程序。
        

创建类和对象

用法:

  • 使用 class 来定义一个类
  • 使用 new 来创建对象

示例:

        创建一个Person类,并创建它的对象。

步骤:

  1. 创建一个scala项目,并创建一个Object
  2. 添加main方法
  3. 创建类和对象

实现:

  1. 在IDEA中创建项目,并创建一个Object(main方法必须放在Object中)
  2. 添加 main 方法
  3. 创建结果Person 类
  4. 在 main 方法中创建 Person 类对象

参考代码:
scala快速入门系列【类和对象】_大数据_02

简写方式

用法:

  1. 如果类是空的,没有任何成员,可以省略 {}
  2. 如果构造器的参数为空,可以省略 ()

示例:
        使用简写方法重新创建 Person 类和对象

参考代码:
scala快速入门系列【类和对象】_scala教程_03

定义和访问成员变量

        一个人会有自己的属性,例如:人这样一个类,有自己的名字和年龄。我们接下来学习在类中定义,和访问成员变量。

用法

  • 在类中使用 var/val 来定义成员变量
  • 对象直接使用成员变量名称来访问成员变量

示例

  1. 创建一个Object,添加main方法
  2. 创建Person类,添加姓名字段和年龄字段,并对字段进行初始化,让scala自动进行类型推断
  3. 在main方法中创建Person类对象,设置成员变量为"张三"、20
  4. 打印对象的名字和年龄

参考代码

scala快速入门系列【类和对象】_scala教程_04


使用下划线初始化成员变量

        scala中有一个更简洁的初始化成员变量的方式,可以让代码看起来更加简洁。

用法

  • 在定义var类型的成员变量时,可以使用_来初始化成员变量
    – String => null
    – Int => 0
    – Boolean => false
    – Double => 0.0
    – …
  • val类型的成员变量,必须要自己手动初始化

示例

  1. 定义一个Person类,包含一个姓名和年龄字段
  2. 创建一个名为"张三"、年龄为20岁的对象
  3. 打印对象的名字和年龄

步骤

  1. 创建一个Object,添加main方法
  2. 创建Person类,添加姓名字段和年龄字段,指定数据类型,使用下划线初始化
  3. 在main方法中创建Person类对象,设置成员变量为"张三"、20
  4. 打印对象的名字和年龄

参考代码
scala快速入门系列【类和对象】_scala教程_05


定义成员方法

        类可以有自己的行为,scala中也可以通过定义成员方法来定义类的行为。

定义

        在scala的类中,也是使用def来定义成员方法

示例

  1. 创建一个Customer类

scala快速入门系列【类和对象】_大数据_06

  1. 创建一个该类的对象,并调用printHello方法

步骤

  1. 创建一个Object,添加main方法
  2. 创建Customer类,添加成员变量、成员方法
  3. 在main方法中创建Customer类对象,设置成员变量值(张三、男)
  4. 调用成员方法

参考代码

scala快速入门系列【类和对象】_框架_07


访问修饰符

        和Java一样,scala也可以通过访问修饰符,来控制成员变量和成员方法是否可以被访问。

定义

        Java中的访问控制,同样适用于scala,可以在成员前面添加private/protected关键字来控制成员的可见性。但在scala中,没有public关键字,任何没有被标为private或protected的成员都是公共的

案例

  • 定义一个Person类
    scala快速入门系列【类和对象】_框架_08
  • 在main方法中创建该类的对象,测试是否能够访问到私有成员

参考代码

scala快速入门系列【类和对象】_大数据_09
        
        看到这里的都是最优秀的程序猿~~
scala快速入门系列【类和对象】_大数据_10
        本期的内容分享就到这里了,喜欢的小伙伴们记得点个赞,持续关注哟~下一篇将为大家带来构造器的相关内容,敬请期待٩(๑>◡<๑)۶
scala快速入门系列【类和对象】_框架_11