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 有什么问题可以给我留言噢~
  • 相关阅读:
    聊聊oracle rowid与索引结构
    去除文本中的空行
    表与表空间
    文件导入到数据库——复杂版
    文件导入到数据库
    vmware workstation 12+oracle linux 5.10+oracle 11g 搭建rac
    oracle判断是否实施了rac
    面向对象-小练习
    面向对象-面向对象的可拓展性
    面向对象-一切皆对象
  • 原文地址:https://www.cnblogs.com/flyingcr/p/10327105.html
Copyright © 2011-2022 走看看