Scala对象

来源:互联网 发布:知乎吉祥物 编辑:程序博客网 时间:2024/06/05 08:24

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

原创粉丝点击