学科分类
目录
Spark技术栈

类与对象

无论是在Scala中还是Java中,类都是对象的抽象,而对象都是类的具体实例;类不占用内存,而对象占用存储空间。由于面向对象的核心是对象,若想要在应用程序中使用对象,就必须得先创建一个类。类是用于描述一组对象的共同特征和行为。

创建类的语法格式如下:

  class 类名[参数列表] 

上述语法格式中,关键字class主要用于创建类。 [参数列表]表示Scala中类定义可以有参数,也可以无参数,若有参数则称为类参数。需要注意的是,Scala中的类不需要关键字public声明为公共的,并且一个Scala源文件中可以拥有多个类。

当类创建好之后,若是想要访问类中的方法和字段,就需要创建一个对象。

创建对象的语法格式如下:

  类名 对象名称 = new 类名(); 

上述语法格式中,关键字new主要用于创建类的实例对象。

下面,我们创建一个Point类 ,并在类中定义两个字段x 和 y 以及一个没有返回值的move()方法,使用Point类的实例对象来访问类中的方法和字段,代码如文件1所示。

​ 文件1 ClassTest.scala

 1  class Point(xc: Int, yc: Int) {

 2    var x: Int = xc

 3    var y: Int = yc

 4    def move(dx: Int, dy: Int) {

 5      x = x + dx

 6      y = y + dy

 7      println ("x 的坐标点: " + x);

 8      println ("y 的坐标点: " + y);

 9    }

 10 }

 11 object ClassTest {

 12   def main(args: Array[String]) {

 13     val pt = new Point(10, 20);

 14     // 移到一个新的位置

 15     pt.move(10, 10);

 16   }

 17 }

上述代码中,第1-10行代码创建了一个Point类,并在类中定义了两个字段x,y以及一个方法move();第12-15行代码主方法main(),即程序的入口,在主方法中创建类的实例对象pt,使用该对象访问类中方法move()和字段的操作;第11行代码中的object这里不作介绍,在后面小节中会进行介绍。

运行上述文件1中的代码,效果如图1所示。

img

​ 图1 实例对象访问类中方法和字段的运行结果

点击此处
隐藏目录