scala-面向对象(中)

一,项目中的package

在一个项目中,不同的包可以有相同的类名而不引发冲突;

命名规则:只能包含数字、字母、下划线、小圆点.,但不能用数字开头, 也不要使用关键字;一般是小写字母+小圆点,一般是 com.公司名.项目名.业务模块名

包可以包含类、对象和特质 trait,但不能包含函数/方法或变量的定义

1) Scala 中,import 语句可以出现在任何地方,并不仅限于文件顶部import 语句的作用一直 延伸到包含该语句的块末尾。这种语法的好处是:在需要时在引入包,缩小 import 包的作用范围,提 高效率。

 

二、

三、

四、

五、面向对象3特征

封装、继承和多态

封装(encapsulation)就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作;

1) Scala 中为了简化代码的开发,当声明属性 var 时,本身就自动提供了对应 setter/getter 方法,如 果属性声明为 private 的,那么自动生成的 setter/getter方法也是 private 的,如果属性省略访问权限修饰符,那么自动生成的 setter/getter 方法是 public;

2) 因此我们如果只是对一个属性进行简单的 set get ,只要声明一下该属性(属性使用默认访问修饰符) 不用写专门的 getset,默认会创建,访问时,直接对象.变量。这样也是为了保持访问一致性

3) 从形式上看 dog.food 直接访问属性,其实底层仍然是访问的方法

4) 有了上面的特性,目前很多新的框架,在进行反射时,也支持对属性的直接反射

继承:

Scala 支持类的单继承,class 子类名 extends 父类名 { 类体 }

1) 代码的复用性提高了

2) 代码的扩展性和维护性提高了

子类继承了所有的属性,只是私有的private属性不能直接访问,需要通过公共的方法去访问

scala 明确规定,重写一个非抽象方法需要用 override 修饰符,调用超类的方法使用 super 关键字

类型检查和转换:

要测试某个对象是否属于某个给定的类,可以用 isInstanceOf 方法。用 asInstanceOf 方法将引用转换为子类的引用。classOf 获取对象的类名

classOf[String]就如同 Java String.class 。 obj.isInstanceOf[T]就如同 Java obj instanceof T 判断 obj 是不是 T 类型。 obj.asInstanceOf[T]就如同 Java (T)obj obj 强转成 T 类型。

def main(args: Array[String]): Unit = {
    //ClassOf 的使用,可以得到类名
    println(classOf[String]) // 输出
    val s = "king"
    println(s.getClass.getName) //使用反射机制
    //isInstanceOf asInstanceOf
    var p1 = new Person200
    var emp = new Emp200
    //将子类引用给父类(向上转型,自动)
    p1 = emp
    //将父类的引用重新转成子类引用(多态),即向下转型
    var emp2 = p1.asInstanceOf[Emp200]
    emp2.sayHello()
  }

  //Person 类
  class Person200 {
    var name: String = "tom"
    def printName() { //输出名字
      println("Person printName() " + name)
    }
    def sayHi(): Unit = {
      println("sayHi...")
    } }


  class Emp200 extends Person200 {
    //这里需要显式的使用 override

    override def printName() {
      println("Emp printName() " + name)
      //在子类中需要去调用父类的方法,使用 super
      super.printName()
      sayHi()
    }

    def sayHello(): Unit = {
    } }

类型检查和转换的最大价值在于:可以判断传入对象的类型,然后转成对应的子类对象,进行相关操作,这里也体现出多态的特点

Scala 中超类的构造:

该章节未完待续!!!

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值