Scala面向对象编程

scala面向对象基本概念

抽象类
单例对象
特征
样例类

类Class
特点

类通过class关键字定义
类通过new关键字创建实例
类拥有 成为变量和办法
类的成员默认为public,也支持private、protected </font color>
类中无法定义静态成员变量和方法
类无需明确定义构造方法,通过构造参数列表声明为类的一部分

类的修饰符
Java
在这里插入图片描述
Scala
在这里插入图片描述
类的定义
构造器:主构造器
辅助构造器:关键字this()
定义成员变量与方法
类的实例化

例如:

	class ClassTest(n:Int,m:Int) {
	  var x:Int = n   //成员变量
	  var y:Int = m
	  //辅助构造器
	  def this()= {
	    this(0,0)     //第一句必须调用其他构造器
	  }
	  //成员方法
	  def move(a:Int,b:Int): Unit ={
	    x = a + x
	    y = b + y
	    println(x,y)
	  }
	
	
	}
	object Test{
	  def main(args: Array[String]): Unit = {
	    var p = new ClassTest();
	    p.x
	    p.y
	    p = new ClassTest(12,11)
	    p.x
	    p.y
	    p.move(1,2)
	  }
	}

运行结果:

	(13,13)

类的继承
特点:
Scala使用”extends“关键字实现继承
子类重写父类方法必须使用”override"关键字abstract class Father {

	def seekBook()={
	    println("father book")
	  }
	}
	class Son extends Father {
	  override def seekBook(): Unit = {
	    super.seekBook()
	    println("son book")
	  }
	}
	object Test1{
	  def main(args: Array[String]): Unit = {
	    var son = new Son
	    son.seekBook();
	  }
	}

运行结果:

	father book
	son book

抽象类
抽象类可包含未实现的方法,即抽象方法
抽象类无法实例化
抽象类使用abstract关键字修饰
注:

子类重写父类抽象方法时,override 关键字可选
子类重写父类非抽象方法,override关键字必写

单例对象(object)
Scala使用单例对象来定义静态成员变量、成员方法和静态代码块:
使用object 关键字声明,可包含变量、方法与代码定义
单例对象中的成员变量、成员方法通过单例对象名直接调用
单例对象第一次访问时初始化,并执行全部代码块
单例对象不能new,且无构造参数
程序入口main() 方法必须定义在单例对象中
单例对象与同名类定义统一文件中时形成绑定关系

object为单例对象,里面的变量是静态变量,方法为静态方法
当同名class、object一起出现时,可以通过apply关键词来实现伴生对象和伴生类
例如:

	object Blah {
		def sum(I:List[Int]):Int=I.sum
	
	  def main(args: Array[String]): Unit = {
	    println(Blah.sum(List(1,2,3)))
	  }
	}

运行结果:

	6

伴生(Companion):伴生对象和伴生类
单例对象与同名类定义在同一文件中时形成绑定关系
同名类称为单例对象的伴生类(class)
单例对象称为同名类伴生对象(object)
伴生类与伴生对象可互相访问个自私有成员
伴生对象可为伴生类增加静态成员
例如:

	class Book(title:String,author:String) {
	  var bookname = title;
	  var auth = author;
	  def this() {
	    this("interseting&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值