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 类对象

参考代码:
在这里插入图片描述

简写方式

用法:

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

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

扫描二维码关注公众号,回复: 8771382 查看本文章

参考代码:
在这里插入图片描述

定义和访问成员变量

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

用法

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

示例

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

参考代码

在这里插入图片描述


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

        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的类中,也是使用def来定义成员方法

示例

  1. 创建一个Customer类

在这里插入图片描述

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

步骤

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

参考代码

在这里插入图片描述


访问修饰符

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

定义

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

案例

  • 定义一个Person类
    在这里插入图片描述
  • 在main方法中创建该类的对象,测试是否能够访问到私有成员

参考代码

在这里插入图片描述
        
        看到这里的都是最优秀的程序猿~~
在这里插入图片描述
        本期的内容分享就到这里了,喜欢的小伙伴们记得点个赞,持续关注哟~下一篇将为大家带来构造器的相关内容,敬请期待٩(๑>◡<๑)۶
在这里插入图片描述

发布了164 篇原创文章 · 获赞 1380 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/weixin_44318830/article/details/104049755
今日推荐