Scala基础—面向对象编程示例

来源:互联网 发布:淘宝永久不支持解绑 编辑:程序博客网 时间:2024/05/21 18:01
package com.spark.scala.basics/**  * 1.使用new ClassName的方式构建出类的对象  * 2.如果名称相同,则object中的内容都是class的静态内容,在object中的内容class都可以在没有实例的时候去直接调用;  *    可以使用object中的特定的方法来创建类的实例,而这个特定的方法就是apply方法  * 3.object中的apply方式是class对象生成的工厂方法,用于控制对象的生成  * 4.直接调用抽象类的objectapply方法去生成类的实例对象  *    1)apply具有类的对象生成,抽象类是不可以直接实例化,在apply方法中可以实例化抽象类的子类,比如Spark的图计算,Graph是抽象的类,在object Graph  *      apply方法  * 5.object HelloOOPclass HelloOOP的伴生对象,class HelloOOP可以直接访问object HelloOOP中的一切内容,而class HelloOOPobject HelloOOP的伴生类  *    object HelloOOP可以访问class HelloOOP中除去private[this]修饰的成员的一切内容  * 6.在定义scalaclass的时候,可以直接在类名后面()里加入类的构造参数,此时在apply方法中也必须有这些参数  * 7.scala中,可以在object中构建很多apply方法
  * 8.Array(1,2,3,4,5,6)就是调用的apply的方法  */class HelloOOP(age: Int) {  var name = "Scala"  def sayHello(): Unit = println("My name is " + name + "!" + " My age is " + age + "!")}object HelloOOP {  def main(args: Array[String]): Unit = {//    val helloOOP = new HelloOOP//    helloOOP.sayHello    val helloOOP = HelloOOP() //注意此时有()    helloOOP.sayHello()  }  def apply(age: Int): HelloOOP = {    new HelloOOP(age)  }  def apply(): HelloOOP = {    new HelloOOP(5)  }}
原创粉丝点击