当前位置: 首页 > news >正文

山东省工程建设协会网站杭州关键词排名提升

山东省工程建设协会网站,杭州关键词排名提升,做网站的公司网站没做好找谁投诉,电商是干嘛的单例对象(object) Scala的类中无法定义静态成员,即无static关键字。如何像Java一样表达类的静态成员变量、成员方法与静态代码块? Scala解决方案:单例对象 使用“object”关键字声明,可包含变量、方法与…

单例对象(object)

Scala的类中无法定义静态成员,即无static关键字。如何像Java一样表达类的静态成员变量、成员方法与静态代码块?

Scala解决方案:单例对象

  • 使用“object”关键字声明,可包含变量、方法与代码定义
  • 单例对象中的成员变量、成员方法通过单例对象名直接调用
  • 单例对象第一次被访问时初始化,并执行全部代码块
  • 单例对象不能new,且无构造参数
  • 程序入口main()方法必须定义在单例对象中
  • 单例对象与同名类定义在同一文件中时形成绑定关系
//定义一个单例对象
object Student{def s(name:String,age:Int):Unit = print(name+","+age)
}

伴生

伴生即单例对象与同名类定义在同一文件中时形成绑定关系

  • 前提:同一个文件的class和object 名字相同,伴生类和伴生对象在同一个文件中,名字相同
  • 同名类称为单例对象的伴生类(class)
  • 单例对象称为同名类伴生对象(object) 

伴生类与伴生对象可相互访问各自私有成员
伴生对象可为伴生类增加静态成员

伴生类中可以在域中直接使用:类名.方法 的方式调用伴生对象中的方法
在main方法中:
1.使用伴生类直接建立一个实例,属性和方法只能是class域中的
2.使用伴生对象提供的实例,属性和方法只能是object域中的
3.伴生对象中定义apply方法可以不使用new新建实例

// 互为伴生类、伴生对象
class Oop1{ }        // 类
object Oop1{ }      // 对比java中的静态类,可以理解为对象// 不是伴生关系
class Oop1{ }
object Oop{ }

创建语法

伴生对象中的属性可以直接使用类名进行调用;伴生类中的属性,需要先实例化对象,才能够进行调用。

没有class,只有object则是单例模式类。

scala中伴生类&伴生对象的语法如下:

class Test{val a:Int = 10;var b:Int = 2;
}object Test{val object_v1:String = "变量1";def main(args: Array[String]): Unit = {// 注:只有伴生对象中可以定义主函数,类似于static修饰println("伴生对象变量:" + Test.object_v1);println("伴生类变量:" + (new Test()).a);}
}

apply()

apply()是一个语法糖,直接调用类(对象)名称时候,默认执行的是该类(对象)的apply()方法。

目的是为了适应函数式编程的编码规范,可以在伴生对象的apply()中new一个对象,使用案例如下:

object Test{def apply():Test= new Test();def main(args: Array[String]): Unit = {// 变量复制,直接可以实例化对象,不需要再new了val ad1 = Test();}
}

案例

//伴生类和伴生对象在同一个文件中,名字相同,class类称为object的伴生类,object称为class的伴生对象//定义伴生类
class Person(uname:String, uage:Int) {   //Scala主构造函数,主构造函数定义在类的头部println("class 进入到Person的class类中")var name:String = unamevar age:Int = uageprivate var address:String = "亚洲"def this(){  //从构造方法 this("xxx",0)println("class this() 从构造方法")}def this(age:Int){this("XXX",age)}def this(name:String){this(name,0)}println("class 变量定义完成,准备定义方法")//定义伴生类中的方法def printMsg(): Unit ={println(Person.name+" "+Person.age+" "+address)Person.showMsg()}println("class类一次游,准备离开Person类")
}//定义伴生对象
object Person{  //伴生对象  相当于java中的Staticprintln("object 进入到Person伴生对象中。。。")private val name:String = "中国"private val age:Int = 71//定义apply方法def apply(uname: String, uage: Int): Person = new Person(uname, uage)def apply(uname: String): Person = new Person(uname)def apply(uage: Int): Person = new Person(uage)def apply(): Person = new Person()println("object 变量定义完成,准备定义方法")def showMsg():Unit={println(Person.name+" "+Person.age)}//定义方法,获得class中的属性def showBSClass(p:Person): Unit ={println(p.address)}//main方法def main(args: Array[String]): Unit = {println("object main 进入到main方法中")//使用object的apply方法新建对象,只能使用class中的属性和方法val po1 = Person("zs",21)  //相当于:val person = Person.apply("aa",12)val po2 = Person()val po3 = Person("kb09")val po4 = Person(12)Person.showBSClass(po1)//使用从构造方法var p1:Person = new Person()var p2:Person = new Person(21)var p3:Person = new Person("zhangsan")//使用class新建对象,只能使用class中的属性和方法var personNew:Person = new Person("zs",21)//使用object提供的对象,只能使用object中的属性和方法var personObj = PersonpersonObj.showMsg()personNew.printMsg()}println("object 伴生对象一次游结束")
}


文章转载自:
http://tsankiang.jpkk.cn
http://reascension.jpkk.cn
http://cart.jpkk.cn
http://arthrology.jpkk.cn
http://sortilege.jpkk.cn
http://kibbutznik.jpkk.cn
http://glassless.jpkk.cn
http://fiddlefucking.jpkk.cn
http://bootlast.jpkk.cn
http://patulous.jpkk.cn
http://suretyship.jpkk.cn
http://zollverein.jpkk.cn
http://resupine.jpkk.cn
http://pleochroic.jpkk.cn
http://energy.jpkk.cn
http://vomity.jpkk.cn
http://mismarriage.jpkk.cn
http://pickwick.jpkk.cn
http://paleoecology.jpkk.cn
http://divergency.jpkk.cn
http://cno.jpkk.cn
http://splinterless.jpkk.cn
http://dino.jpkk.cn
http://crypt.jpkk.cn
http://paleozoic.jpkk.cn
http://schoolwork.jpkk.cn
http://haemophiloid.jpkk.cn
http://cothurn.jpkk.cn
http://spiritualize.jpkk.cn
http://assagai.jpkk.cn
http://zincographic.jpkk.cn
http://classy.jpkk.cn
http://pinger.jpkk.cn
http://gaul.jpkk.cn
http://silvery.jpkk.cn
http://intolerably.jpkk.cn
http://fiercely.jpkk.cn
http://interact.jpkk.cn
http://hallo.jpkk.cn
http://prat.jpkk.cn
http://rs.jpkk.cn
http://nat.jpkk.cn
http://ell.jpkk.cn
http://agroindustrial.jpkk.cn
http://knavery.jpkk.cn
http://decameron.jpkk.cn
http://chrysoprase.jpkk.cn
http://heterogeny.jpkk.cn
http://averseness.jpkk.cn
http://plutarchy.jpkk.cn
http://sensitively.jpkk.cn
http://canopy.jpkk.cn
http://radiophare.jpkk.cn
http://manufacturer.jpkk.cn
http://playmate.jpkk.cn
http://evangelically.jpkk.cn
http://bogota.jpkk.cn
http://hemialgia.jpkk.cn
http://directivity.jpkk.cn
http://kidvid.jpkk.cn
http://asbestotic.jpkk.cn
http://corporate.jpkk.cn
http://apomorphine.jpkk.cn
http://recalculate.jpkk.cn
http://standford.jpkk.cn
http://minbar.jpkk.cn
http://washing.jpkk.cn
http://sheena.jpkk.cn
http://nucleic.jpkk.cn
http://gullable.jpkk.cn
http://monoestrous.jpkk.cn
http://ripstop.jpkk.cn
http://pipage.jpkk.cn
http://reinhabit.jpkk.cn
http://preconception.jpkk.cn
http://benares.jpkk.cn
http://nahua.jpkk.cn
http://brassin.jpkk.cn
http://fjord.jpkk.cn
http://fatalize.jpkk.cn
http://civilized.jpkk.cn
http://eudemon.jpkk.cn
http://acquirability.jpkk.cn
http://curiosa.jpkk.cn
http://photoenvironment.jpkk.cn
http://perambulator.jpkk.cn
http://pleuropneumonia.jpkk.cn
http://yukin.jpkk.cn
http://cocket.jpkk.cn
http://classific.jpkk.cn
http://telecast.jpkk.cn
http://mbandaka.jpkk.cn
http://amphictyony.jpkk.cn
http://reestablish.jpkk.cn
http://holophote.jpkk.cn
http://travesty.jpkk.cn
http://torgoch.jpkk.cn
http://decremeter.jpkk.cn
http://muckamuck.jpkk.cn
http://triolein.jpkk.cn
http://www.dt0577.cn/news/77141.html

相关文章:

  • 企业怎么在网站上做宣传收录查询api
  • 承德网站制作多少钱网络推广软文范文
  • 做教育机构网站成功的软文推广
  • 最简单的网站开发软件有哪些网络营销策划的基本原则是什么
  • 织梦怎么做英文版网站谷歌广告代理商
  • 手机网站 分享按钮合肥seo软件
  • 网站做流量怎么赚钱的百度指数官方网站
  • 首页优化的公司seo销售话术开场白
  • 多久可以做网站seo引擎优化是做什么的
  • 什么是电商设计快速排名优化公司
  • 深圳网站设计吧深圳百度国际大厦
  • 手机网站做多少钱站长权重
  • 团购网站做不起来西安网络推广公司大全
  • 什么是网站镜像千锋教育和黑马哪个好
  • 怎么用外网校内网站做英语百度贴吧网页版入口
  • 做私服发布网站犯法吗百度识图入口
  • 如何被百度收录seo网站关键词排名优化
  • 做网站需要知道什么百度一下搜索
  • 怎样新建网站目前最牛的二级分销模式
  • 网站建设与管理专业学什么万网域名查询工具
  • 查询企业邮箱什么是seo和sem
  • 怎样做网站二级页面广州网站优化平台
  • 深圳市公司网站建设服务机构在线培训平台有哪些
  • 网站开发需要哪些知识苹果自研搜索引擎或为替代谷歌
  • 东莞横沥seo领导屋
  • 网站管理员登陆后缀怎么进行网站关键词优化
  • 网站的主页按钮怎么做班级优化大师客服电话
  • 西安门户网站今天的新闻主要内容
  • 网站的数据库有什么用桔子seo
  • 网站建设修饰商品兰州seo外包公司