Scala基础(二)

Scala的面向对象

Scala 的面向对象思想和 Java 的面向对象思想和概念是一致的。

Scala 中语法和 Java 不同,补充了更多的功能。

1.Scala包

        Scala包与Java类似,有两种管理方式。第一种与Java一毛一样。

        但是在Scala中,还有另一种,即通过嵌套的方式。

package com{
    package zc{
        package hadoop{
        
        }
    }
}

按照嵌套的方式:

(1)一个源文件中可以声明多个 package

(2)子包中的类可以直接访问父包中的内容,而无需导包,父包访问子包需要导包。

        1.1Scala中的包对象

在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。类似于class的伴生对象。

package object Chap02 {
  //定义当前包共享的属性和方法
  val commonValue = "zc"
  def commonMethod()={
    println(commonValue+"在学习")
  }
}

        1.2导包

1)和 Java 一样,可以在顶部使用 import 导入,在这个文件中的所有类都可以使用。

2)局部导入:什么时候使用,什么时候导入。在其作用范围内都可以使用

3)通配符导入:import java.util._

4)给类起名:import java.util.{ArrayList=>JL}

5)导入相同包的多个类:import java.util.{HashSet, ArrayList}

6)屏蔽类:import java.util.{ArrayList =>_,_}

7)导入包的绝对路径:new _root_.java.util.HashMap

注意:Scala 中的三个默认导入分别是 import java.lang._ import scala._ import scala.Predef._

2.Scala 类

在Scala中,没有public(即默认就是 public)

其次,一个Scala源文件可以包含多个类

类的属性(封装)都在下面实现:

object Test1BeanClass {
  def main(args: Array[String]): Unit = {
    val student = new Student
    student.setAge(1)
    student.setSex("ada")

    println(student)
  }
}
/* 修饰符默认public*/class Student{

  private var name :String = _
  //使用 _ 就是默认为该类型的空值
  //在Scala中@BeanProperty我们可以直接获取getset方法
  //但是此时使用@ 的话,我们需要其是private ,那么就很离谱 设计来干嘛。。
  //Scala 中的 public 属性,底层实际为 private,并通过 get 方法(obj.field())和 set 方法
  //(obj.field_=(value))对其进行操作。所以 Scala 并不推荐将属性设为 private,再为其设置
  //public 的 get 和 set 方法的做法。但由于很多 Java 框架都利用反射调用 getXXX 和 setXXX 方
  //法,有时候为了和这些框架兼容,也会为 Scala 的属性设置 getXXX 和 setXXX 方法(通过
  //@BeanProperty 注解实现)。
  @BeanProperty
   var age:Int= _
  @BeanProperty
   var sex:String= _
  override def toString = name+"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值