馊主意是什么意思| 总胆红素偏高什么意思| 无名指戴戒指代表什么| 孩子说话晚是什么原因| 气血不足吃什么药最好| 为什么会长斑| 副肾是什么药名| 手癣用什么药膏效果好| 什么是走读生| 吃避孕药不能吃什么东西| 821是什么星座| 心脏早搏有什么症状| 龟头脱皮是什么原因| 天蝎男喜欢什么样的女生| 6月19日是什么日子| 术后吃什么| 梦见打老婆是什么预兆| 严重贫血的人吃什么补血最快| 喉咙痛咳嗽吃什么药| 腹腔积液是什么原因| 胃炎能吃什么| 化疗后吃什么药| 女性尿路感染有什么症状| 8月18日什么星座| 什么植物驱蚊| 新五行属什么| 什么牌子的护肝药最好| 什么是男人| 翻盘是什么意思| 梦见洗头发是什么意思| 宫寒吃什么药调理最好| 路上行人匆匆过是什么歌| 吃头发的虫子叫什么| 虚岁24岁属什么生肖| 唐氏综合症是什么病| 脚趾头长痣代表什么| 什么能美白皮肤而且效果快| 满城尽带黄金甲是什么意思| 直肠炎有什么症状| 挑疳积挑出来的是什么| 避免是什么意思| 做梦丢钱了什么征兆| 肝硬化前期有什么症状| 变蛋吃多了有什么好处和坏处| 玫瑰糠疹吃什么药最有效| 北加田加共是什么字| 脂蛋白高说明什么问题| circles是什么意思| 执业药师什么时候考试| 氨水对人体有什么危害| 具象是什么意思| 怀孕一个月有什么反应| 吃得苦中苦方为人上人是什么意思| 甘油是什么东西| 7月属于什么季节| 血小板计数高是什么原因| 已归档是什么意思| 霜和乳有什么区别| 什么洗发水好| 1993属什么| 众里寻他千百度是什么意思| 意味深长是什么意思| 软组织损伤是什么意思| 泸州老窖是什么香型| 肺炎吃什么药好得快| 怀孕去医院检查挂什么科| 冬瓜炖什么好吃| 什么什么相接| 中筋面粉是什么粉| 白泽长什么样| haglofs是什么牌子| 下午4点多是什么时辰| 镉是什么东西| bmo是什么意思| 小儿多动症挂什么科| 孕妇吸二手烟对胎儿有什么影响| 11五行属什么| 什么是高血脂| b超挂什么科| 专案组是什么意思| 煎牛排用什么锅| 身份证最后一位代表什么| 乳岩是什么病| 白带是绿色的是什么原因| 太阳什么的什么的| 聪明如你什么意思| 工段长是什么级别| 1983属什么生肖| 小孩为什么吃果糖二磷酸钠| 海是什么生肖| 锤子是什么意思| 尿黄是什么病| 脐橙是什么意思| 生产是什么意思| 书生是什么生肖| 双侧中耳乳突炎是什么意思| 藤原拓海开的什么车| 什么是假性狐臭| 转氨酶高吃什么药好| 为什么会面瘫| ova什么意思| 肾积水挂什么科室| 车代表什么生肖| 什么家| 为什么喝绞股蓝会死亡| 心率90左右意味着什么| 拉肚子为什么肛门痛| 上海有什么好玩的地方旅游景点| 耳后淋巴结肿大吃什么消炎药| 头晕什么原因引起的| 什么是禽流感| 心脏供血不足用什么药| 地板砖什么颜色好看| 男人下面胀痛什么原因造成呢| 支原体感染是什么引起的| 乳腺回声不均匀是什么意思| youtube是什么软件| 缜密是什么意思| 5月29日什么星座| 4级手术是什么意思| 06年属什么| skll什么牌子| 为什么叫夺命大乌苏| 五月十三号是什么日子| ga是什么意思| 肌酐700多意味着什么| wifi用户名是什么| 翻墙软件是什么| 耳耵聍是什么东西| 2024年属龙的是什么命| 动脉抽血是做什么检查| 艾灰有什么作用和功效| 母后是什么意思| 力五行属什么| 滚床单是什么意思| 无情是什么意思| 孕妇钙片什么时间段吃最好| 什么原因引起脑梗| 四肢麻木是什么原因引起的| 24是什么生肖| 三杯鸡的三杯是什么| 秋刀鱼在中国叫什么鱼| 月经不正常去医院检查什么项目| 舌头上火吃什么药| 腰间盘挂什么科| callme是什么意思| 薛之谦属什么生肖| 尿酸高什么引起的| 是什么字| 疮疖是什么样子图片| 男人尿多是什么原因| 头部麻木是什么征兆| 北齐是什么朝代| 白猫来家里有什么预兆| 什么样的伤口需要打破伤风| 咳嗽挂什么科| 刘秀和刘邦是什么关系| 效果是什么意思| 苹果补充什么维生素| 贵人多忘事是什么意思| 皮肤黑穿什么颜色显白| 眼睛怕光是什么原因| 九二年属猴的是什么命| 兜兜转转是什么意思| 验孕棒什么时候测| 成吉思汗什么意思| 不置可否什么意思| 拜你所赐什么意思| 天喜星是什么意思| qq2g在线是什么意思| 女性漏尿吃什么药最好| 什么能软化血管| 一个木一个西读什么| 翡翠是什么颜色| 舌头红是什么原因| 美篇是什么| 吃什么会回奶| 撸管是什么意思| 什么汤补气血效果最好| 小孩感冒吃什么药| wba是什么意思| 低压高吃什么药| 痔疮吃什么药最好| 头上长虱子什么原因引起的| 润喉咙什么东西最合适| pr间期缩短是什么意思| 什么身子| 小寨附近有什么好玩的| 什么水果含钾| 乳酸菌和益生菌有什么区别| 空指什么生肖| 族谱是什么意思| 潮湿的近义词是什么| 双肺呼吸音粗是什么意思| alyx是什么牌子| 接触性皮炎用什么药| 厌世是什么意思| 游泳有什么好处| 虫草什么时候吃最好| 风湿性关节炎用什么药| 肝火旺是什么症状| 行房出血是什么原因| 什么大什么小| 属牛的生什么属相的孩子好| 梦见洗头是什么预兆| 内痔是什么| 什能组什么词| 什么叫内分泌失调是什么意思| 甲功是查什么的| 火可念什么| 五月十六是什么星座| 公明仪属什么生肖| py什么意思| 碘伏过敏是什么症状| 膀胱炎尿道炎吃什么药| 女人后脑勺出汗多是什么原因| 障碍性贫血是什么病| 属狗和什么属相不合| 胎儿双顶径偏大是什么原因| 什么是国企单位| 前列腺增生吃什么药| 白细胞偏低是什么意思| 什么枝条| 吃什么补津液| 肺炎吃什么消炎药| 拉肚子去医院挂什么科| 什么样的人能镇住凶宅| drg是什么| 站台是什么意思| 干净的反义词是什么| 很黄很暴力是什么意思| dht是什么| 狂风暴雨是什么生肖| 一个金字旁一个先读什么| 脑管瘤的症状是什么| 1995年属什么| 红豆生南国什么意思| 蓝色衬衫配什么裤子| 武则天叫什么| npc是什么意思| 支气管炎吃什么药最有效| 子宫腺肌症吃什么药最有效| 1978年属马五行缺什么| 清静是什么意思| 心脏彩超挂什么科| 着床出血是什么意思| 梦见车丢了是什么征兆| 蟑螂什么样子| 湿热带下是什么意思| 什么是正装| 鸡毛信是什么意思| 梦代表什么生肖| 淋巴细胞绝对值偏低说明什么| 为什么会得疣| 入伙是什么意思| 唐山大地震是什么时候| 量化是什么意思| 梦见父亲死了是什么意思| 中医为什么下午不把脉| 1223是什么星座| 春捂秋冻指的是什么意思| 成都有什么区| txt什么意思| 尚清是什么意思| 百度
Scala Tutorial / Scala 类和对象

江苏援疆助农民走上致富“快车道”

百度   上海市委常委、宣传部部长董云虎等在报告会前会见了报告团。

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

我们可以使用 new 关键字来创建类的对象,实例如下:

class Point(xc: Int, yc: Int) {
   var x: Int = xc
   var y: Int = yc

   def move(dx: Int, dy: Int) {
      x = x + dx
      y = y + dy
      println ("x 的坐标点: " + x);
      println ("y 的坐标点: " + y);
   }
}

Scala中的类不声明为public,一个Scala源文件中可以有多个类。

以上实例的类定义了两个变量 xy ,一个方法:move,方法没有返回值。

Scala 的类定义可以有参数,称为类参数,如上面的 xc, yc,类参数在整个类中都可以访问。

接着我们可以使用 new 来实例化类,并访问类中的方法和变量:

import java.io._

class Point(xc: Int, yc: Int) {
   var x: Int = xc
   var y: Int = yc

   def move(dx: Int, dy: Int) {
      x = x + dx
      y = y + dy
      println ("x 的坐标点: " + x);
      println ("y 的坐标点: " + y);
   }
}

object Test {
   def main(args: Array[String]) {
      val pt = new Point(10, 20);

      // 移到一个新的位置
      pt.move(10, 10);
   }
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
x 的坐标点: 20
y 的坐标点: 30

Scala 继承

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

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

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

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

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

class Point(xc: Int, yc: Int) {
   var x: Int = xc
   var y: Int = yc

   def move(dx: Int, dy: Int) {
      x = x + dx
      y = y + dy
      println ("x 的坐标点: " + x);
      println ("y 的坐标点: " + y);
   }
}

class Location(override val xc: Int, override val yc: Int,
   val zc :Int) extends Point(xc, yc){
   var z: Int = zc

   def move(dx: Int, dy: Int, dz: Int) {
      x = x + dx
      y = y + dy
      z = z + dz
      println ("x 的坐标点 : " + x);
      println ("y 的坐标点 : " + y);
      println ("z 的坐标点 : " + z);
   }
}

Scala 使用 extends 关键字来继承一个类。实例中 Location 类继承了 Point 类。Point 称为父类(基类),Location 称为子类。

override val xc 为重写了父类的字段。

继承会继承父类的所有属性和方法,Scala 只允许继承一个父类。

实例如下:

import java.io._

class Point(val xc: Int, val yc: Int) {
   var x: Int = xc
   var y: Int = yc
   def move(dx: Int, dy: Int) {
      x = x + dx
      y = y + dy
      println ("x 的坐标点 : " + x);
      println ("y 的坐标点 : " + y);
   }
}

class Location(override val xc: Int, override val yc: Int,
   val zc :Int) extends Point(xc, yc){
   var z: Int = zc

   def move(dx: Int, dy: Int, dz: Int) {
      x = x + dx
      y = y + dy
      z = z + dz
      println ("x 的坐标点 : " + x);
      println ("y 的坐标点 : " + y);
      println ("z 的坐标点 : " + z);
   }
}

object Test {
   def main(args: Array[String]) {
      val loc = new Location(10, 20, 15);

      // 移到一个新的位置
      loc.move(10, 10, 5);
   }
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
x 的坐标点 : 20
y 的坐标点 : 30
z 的坐标点 : 20

Scala重写一个非抽象方法,必须用override修饰符。

class Person {
  var name = ""
  override def toString = getClass.getName + "[name=" + name + "]"
}

class Employee extends Person {
  var salary = 0.0
  override def toString = super.toString + "[salary=" + salary + "]"
}

object Test extends App {
  val fred = new Employee
  fred.name = "Fred"
  fred.salary = 50000
  println(fred)
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
Employee[name=Fred][salary=50000.0]

Scala 单例对象

在 Scala 中,是没有 static 这个东西的,但是它也为我们提供了单例模式的实现方法,那就是使用关键字 object。

Scala 中使用单例模式时,除了定义的类之外,还要定义一个同名的 object 对象,它和类的区别是,object对象不能带参数。

当单例对象与某个类共享同一个名称时,他被称作是这个类的伴生对象:companion object。你必须在同一个源文件里定义类和它的伴生对象。类被称为是这个单例对象的伴生类:companion class。类和它的伴生对象可以互相访问其私有成员。

单例对象实例

import java.io._

class Point(val xc: Int, val yc: Int) {
   var x: Int = xc
   var y: Int = yc
   def move(dx: Int, dy: Int) {
      x = x + dx
      y = y + dy
   }
}

object Test {
   def main(args: Array[String]) {
      val point = new Point(10, 20)
      printPoint

      def printPoint{
         println ("x 的坐标点 : " + point.x);
         println ("y 的坐标点 : " + point.y);
      }
   }
}

执行以上代码,输出结果为:

$ scalac Test.scala 
$ scala Test
x 的坐标点 : 10
y 的坐标点 : 20

伴生对象实例

/* 文件名:Marker.scala
 * author:php中文网
 * url:www.php.cn
 */

// 私有构造方法
class Marker private(val color:String) {

  println("创建" + this)
  
  override def toString(): String = "颜色标记:"+ color
  
}

// 伴生对象,与类共享名字,可以访问类的私有属性和方法
object Marker{
  
    private val markers: Map[String, Marker] = Map(
      "red" -> new Marker("red"),
      "blue" -> new Marker("blue"),
      "green" -> new Marker("green")
    )
    
    def apply(color:String) = {
      if(markers.contains(color)) markers(color) else null
    }
  
    
    def getMarker(color:String) = { 
      if(markers.contains(color)) markers(color) else null
    }
    def main(args: Array[String]) { 
        println(Marker("red"))  
        // 单例函数调用,省略了.(点)符号  
		println(Marker getMarker "blue")  
    }
}

执行以上代码,输出结果为:

$ scalac Marker.scala 
$ scala Marker
创建颜色标记:red
创建颜色标记:blue
创建颜色标记:green
颜色标记:red
颜色标记:blue
为什么来月经会有血块 eric是什么意思 npc是什么意思啊 女性盆腔炎吃什么药 怀孕初期吃什么对胎儿发育好
打哈哈是什么意思 阳强易举是什么意思 南京为什么那么多梧桐树 海澜之家属于什么档次 便秘吃什么药快速排便
小雪是什么意思 asmr是什么意思 灿字五行属什么 晚上睡觉阴部外面为什么会痒 睡觉时身体抽搐是什么原因
传染病八项包括什么 梦见好多肉是什么意思 肉桂茶是什么茶 全套是什么意思 梦见门坏了什么意思
胃溃疡适合吃什么食物hcv9jop0ns4r.cn 下肢肿胀是什么原因hcv8jop7ns0r.cn 夜盲症吃什么hcv8jop0ns3r.cn 宫颈口在什么位置hcv9jop3ns5r.cn 酒后手麻什么原因kuyehao.com
年少轻狂是什么意思hcv9jop7ns3r.cn 农历六月六是什么日子hcv8jop1ns5r.cn 艾字五行属什么hkuteam.com 启读什么hcv8jop8ns1r.cn 梦到自己快要死了是什么意思hcv9jop4ns8r.cn
ph值偏高是什么意思hcv8jop8ns2r.cn 孕妇吃什么鱼对胎儿好hcv9jop6ns5r.cn 扑炎痛又叫什么hcv9jop1ns9r.cn 一什么港湾hcv8jop1ns9r.cn 非礼什么意思hcv9jop3ns2r.cn
肠炎有什么症状表现hcv8jop0ns0r.cn 高校新生是什么意思hcv8jop4ns4r.cn 秋天有什么花hcv8jop4ns7r.cn 蛋白过敏是什么症状hcv8jop2ns6r.cn 下肢血管堵塞吃什么药hcv7jop9ns3r.cn
百度