zoukankan      html  css  js  c++  java
  • Scala对象

    1、object对象

    
    object helloworld {
          def main(args: Array[String]) {
    
             //由于Scala没有静态概念,所以静态属性可以通过object来实现
            //编译完成之后会生成对应的类,方法都是静态方法,非静态成员对应到单例类中
            //单例类以Person$为类名称
    
            object Person{
               private var s = "hello";
               def fun(s:String) = println(s);
             }
    
          }
      }
    }
    

    2、伴生对象(类名和object名称相同,并且需要在同一个Scala文件中)

    package com.cr.oop
    
    /**
      * 伴生类和伴生对象
      * class Student是伴生对象Object Student的伴生类
      * object Student是伴生类class Student的伴生对象
      */
    
    //伴生类
    class Student(var name:String,var address:String){
    
      private var phone="110"
      //直接访问伴生对象的私有成员
      def infoCompObj() = println("伴生类中访问伴生对象:" + Student.sno)
    }
    
    //伴生对象
    object Student {
    
      private var sno:Int = 100
      def incrementSno()={
    
        sno += 1 //加1
        sno  //返回sno
      }
      def main(args: Array[String]): Unit = {
    
        println("单例对象:" + Student.incrementSno()) //单例对象
    
        //实例化伴生类
        val obj = new Student("yy","bj")
        obj.infoCompObj();
      }
    }
    
    ---》
    单例对象:101
    伴生类中访问伴生对象:101

    3、扩展对象—-trait===》类似于接口
    4、抽象类

    
    
    //抽象类  
    abstract class Animal1{
      //抽象字段  
      var name:String
      var size:Int
    
      //抽象方法  
      def walk
    }
    
    //抽象类实现类  
    class Cat(var length:Int)extends Animal1{
      override var name = "cat"
      override var size = 100
      override def walk{
        println(this.name + ":" + this.size + ":" + this.length)
      }
    
    }
    object helloworld {
    
      def main(args: Array[String]): Unit = {
        val cat = new Cat(200);
        cat.walk;
        println("name:" + cat.name);
        println("size:" + cat.size);
        println("length:" + cat.length);
      }
    }  

    5、apply方法
    对象后面直接跟参,隐形调用apply方法
    Array

    6、Scala的编译过程
    scalac XXX.scala—产生Scala文件——->scala xxxx—–运行Scala程序

    另外一种一步到位的方法
    scala XXX.scala

    欢迎关注我的公众号:小秋的博客 CSDN博客:https://blog.csdn.net/xiaoqiu_cr github:https://github.com/crr121 联系邮箱:rongchen633@gmail.com 有什么问题可以给我留言噢~
  • 相关阅读:
    第3章 Java数组(上): 一维数组和二维数组
    第二章 JavaScript总结(下)
    第二章 JavaScript案例(中)
    第二章 JavaScript文档(上)
    第一章 Html+Css使用总结(下)
    第一章 HTML+CSS(中)
    div布局
    阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:6. 设备事件上报
    阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:5. 设置设备属性
    阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:4.1 上报位置信息
  • 原文地址:https://www.cnblogs.com/flyingcr/p/10327105.html
Copyright © 2011-2022 走看看