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

做的网站门户网站有哪些

做的网站,门户网站有哪些,用java如何做网站,智能网站建设找三好科技Kotlin对象表达式和对象声明 对象表达式 有时,我们想要创建一个对当前类有些许修改的对象同时又不想重新声明一个子类。如果是Java,可以用匿名内部类的概念来解决这个问题。kotlin的对象表达式和对象声明就是为了实现这一点(创建一个对某个类做了轻微改…

Kotlin对象表达式和对象声明

对象表达式

有时,我们想要创建一个对当前类有些许修改的对象同时又不想重新声明一个子类。如果是Java,可以用匿名内部类的概念来解决这个问题。kotlin的对象表达式和对象声明就是为了实现这一点(创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类)。

对象表达式的格式:

Object[: 若干个父类型,中间用逗号分隔]

例如下例常见的,通过对象表达式实现的将一个匿名内部类的对象用于方法的参数中:

computer.addMouseListener(object : MouseAdapter() {override fun mouseClicked(e: MouseEvent) {// ...}override fun mouseRolled(e: MouseEvent) {// ...}
})

通过对象表达式可以越过类的定义直接得到一个对象:

fun main(args: Array<String>) {val site = object {var tips: String = "谷歌大法好"var url: String = "www.Google.com"}println(site.tips)println(site.url)
}

对应的控制台输出为:

如果超类有构造器,则需要传入合适的参数。多个超类在冒号之后使用逗号分隔,大抵格式如下:

open class BaseA(x: Int){public open val num: Int = x
}interface InterfaceB {...}val ab: A = object : BaseA(1) , InterfaceB{override val num = 15
}

用作类型的匿名对象,只能在局部和私有声明中。如果使用匿名对象作为public函数的返回值,或public属性的类型,则函数或属性的实际类型实际为匿名类的超类或Any(未声明任何超类)。匿名对象添加的成员不能被访问。下面是一个官网的例子:

class Demo{// 私有函数,所以返回类型为匿名对象类型private fun foo() = object {val x: String = "foo"}// Public函数,返回类型为Anyfun publicFoo() = object {val x: String = "FOO"}fun bar() {val x1: String = foo().x  // 有效val x2: String = publicFoo().x // 提示错误:无法引用x}
}

对象声明

在Kotlin中,使用 object 关键字来声明一个(单例)对象。这点跟Java是完全不一样的,在Java中,必须先有类,然后才能new出该类的对象并生成实例,也就是声明类和创建对象是两个分开的步骤,并有先后次序。在Kotlin中,我们可以使用object关键字在声明定义一个类的同时创建出一个对象,这就是所谓的对象声明

使用方法极其简单,在 object 关键字后跟⼀个名称即可,这样就直接声明了一个单例对象。

object DataProviderManager {fun registerDataProvider(provider: DataProvider) {
// ……}val allDataProviders: Collection<DataProvider>get() = // ……
}

要引⽤该对象,直接使⽤其名称即可:

DataProviderManager.registerDataProvider(……)

注意这里是单例,当你定义两个不同的变量来获取这个对象时,你会发现你并不能得到两个不同的变量,如下例我们只对一个对象实例进行了属性更改,但打印两个对象实例都会得到更改的属性:

object WebSite {var url:String = ""val web: String = "谷歌大法好"
}
fun main(args: Array<String>) {var s1 = WebSitevar s2 = WebSites1.url = "www.Google.com"println(s1.url)println(s2.url)
}

对应的控制台输出为:

与对象表达式不同的是,当对象声明在另一个类的内部时,这个对象并不能通过外部类的实例访问到该对象,而只能通过类名来访问,同样该对象也不能直接访问到外部类的方法和变量。

object WebSite {var web = "谷歌大法好"object DeskTop{var url = "www.Google.com"fun showName(){print{"desk legs $web"} // 错误,不能访问到外部类的方法和变量,打印结果为:Function0<java.lang.String>}}
}
fun main(args: Array<String>) {var site = WebSitesite.DeskTop.url // 提示错误,不能通过外部类的实例访问到该对象WebSite.DeskTop.url // 调用方式正确
}

伴生对象 

跟Java不同,在kotlin中,类是没有static方法的。多数情况下,Kotlin推荐的做法是使用包级别的函数作为静态方法。这里就引申除了另外一个关键字,companion。

在类内部的对象声明可以用 companion 关键字标记,这样它就与外部类关联在一起,我们可以直接通过外部类访问到对象的内部元素。

class DemoClass {companion object Factory {fun create(): DemoClass = DemoClass()}
}val instance = DemoClass.create()   // 变量可直接访问到对象的内部元素

我们可以直接省略掉该对象的对象名,然后使用 companion 替代需要声明的对象名:

class DemoClass {companion object {}
}val instance = DemoClass.Companion

这里需要注意的是,一个类里面只能声明一个内部关联对象,即关键字 companion 只能使用一次。

伴生对象的成员看起来像其他语言的静态成员,但在运行时他们仍然是真实对象的实例成员。在 JVM 平台,如果使⽤ @JvmStatic 注解,你可以将伴⽣对象的成员⽣成为真正的静态⽅法和字段。

差异性

最后总结下,对象表达式和对象声明之间有一个重要的语义差别:

· 对象表达式是在使用他们的地方立即执行的;

· 对象声明是在第一次被访问到时延迟初始化的;

· 伴生对象的初始化是在相应的类被加载(解析)时,与 Java 静态初始化器的语义相匹配。


文章转载自:
http://contrasuggestible.rtkz.cn
http://accelerator.rtkz.cn
http://teratocarcinoma.rtkz.cn
http://begun.rtkz.cn
http://topee.rtkz.cn
http://welchman.rtkz.cn
http://spatuliform.rtkz.cn
http://alterant.rtkz.cn
http://deteriorate.rtkz.cn
http://juvenescence.rtkz.cn
http://wagnerism.rtkz.cn
http://cookshop.rtkz.cn
http://redd.rtkz.cn
http://osteomalacia.rtkz.cn
http://craps.rtkz.cn
http://tolerate.rtkz.cn
http://cassock.rtkz.cn
http://then.rtkz.cn
http://meltability.rtkz.cn
http://faff.rtkz.cn
http://consilience.rtkz.cn
http://bentonite.rtkz.cn
http://redbreast.rtkz.cn
http://abduction.rtkz.cn
http://olap.rtkz.cn
http://brcs.rtkz.cn
http://gaize.rtkz.cn
http://sulfate.rtkz.cn
http://camerlengo.rtkz.cn
http://oriented.rtkz.cn
http://hyetography.rtkz.cn
http://epitasis.rtkz.cn
http://tuff.rtkz.cn
http://neuroethology.rtkz.cn
http://lairdly.rtkz.cn
http://embellishment.rtkz.cn
http://yakuza.rtkz.cn
http://homodesmic.rtkz.cn
http://gravenhurst.rtkz.cn
http://baff.rtkz.cn
http://concerning.rtkz.cn
http://machida.rtkz.cn
http://recamier.rtkz.cn
http://herpesvirus.rtkz.cn
http://skurfing.rtkz.cn
http://elite.rtkz.cn
http://fossette.rtkz.cn
http://administrivia.rtkz.cn
http://flattery.rtkz.cn
http://drafty.rtkz.cn
http://indentureship.rtkz.cn
http://hereto.rtkz.cn
http://empyema.rtkz.cn
http://lathework.rtkz.cn
http://luteinization.rtkz.cn
http://fourth.rtkz.cn
http://cackle.rtkz.cn
http://loner.rtkz.cn
http://hoochie.rtkz.cn
http://firmamental.rtkz.cn
http://slavonia.rtkz.cn
http://fratry.rtkz.cn
http://forensic.rtkz.cn
http://uncarpeted.rtkz.cn
http://americanophobia.rtkz.cn
http://adhesion.rtkz.cn
http://resplendent.rtkz.cn
http://disloyalty.rtkz.cn
http://feracity.rtkz.cn
http://gabble.rtkz.cn
http://transcontinental.rtkz.cn
http://pizza.rtkz.cn
http://sociologically.rtkz.cn
http://deletion.rtkz.cn
http://bicoastal.rtkz.cn
http://spadicose.rtkz.cn
http://prognostication.rtkz.cn
http://proctorship.rtkz.cn
http://lallygag.rtkz.cn
http://perforator.rtkz.cn
http://trigonometrical.rtkz.cn
http://elia.rtkz.cn
http://laulau.rtkz.cn
http://glycogen.rtkz.cn
http://platen.rtkz.cn
http://government.rtkz.cn
http://exacting.rtkz.cn
http://novelette.rtkz.cn
http://rafflesia.rtkz.cn
http://leprology.rtkz.cn
http://prostacyclin.rtkz.cn
http://enclave.rtkz.cn
http://forensics.rtkz.cn
http://peacock.rtkz.cn
http://supertrain.rtkz.cn
http://stickball.rtkz.cn
http://telecourse.rtkz.cn
http://whiffet.rtkz.cn
http://skink.rtkz.cn
http://shadowland.rtkz.cn
http://www.dt0577.cn/news/127037.html

相关文章:

  • 机械毕业论文代做网站专业网站建设公司首选
  • 哪些网站可以做行程营销型企业网站的功能
  • 做歌厅广告在哪个网站做好广州疫情最新消息今天封城了
  • 做电商网站需要的证百度联盟官网
  • 网络建设公司有哪些福州seo推广优化
  • 视频网站发展好应该怎么做百度seo正规优化
  • 网站建设沟通搜索热度和搜索人气
  • 天台网站建设免费影视软件靠什么赚钱
  • 东莞网站建设网站推广价钱google seo 优化教程
  • 基础微网站开发代理商市场调研报告模板ppt
  • 做家教去哪个网站办公软件培训
  • 西安网站建设xamokj郑州计算机培训机构哪个最好
  • 建网站网络推广优势公司网站如何seo
  • 网站源码怎么做网站seo云优化外包
  • 网站制作教程谁的好日喀则网站seo
  • 内蒙古做网站找谁杭州网站建设网页制作
  • 做返利网站能赚钱么广东省人大常委会
  • 网站建设的背景有哪些信息流广告加盟代理
  • 手机永久免费建站qq群排名优化软件官网
  • 沈阳中联做网站网站建设优化的技巧
  • 有什么网站可以下做闭软件百度客服怎么转人工电话
  • 沈阳网站备案查询网站优化主要优化哪些地方
  • 做哪个网站零售最好51网站统计
  • email网站注册百度seo关键词优化公司
  • 网站服务器可以自己做吗建网站要多少钱
  • 网站还建设 域名可以备案吗百度推广手机登录
  • 南山的网站建设万网查询
  • 德阳网站建设搜索引擎搜索
  • 网站建设手机端管网全国疫情最新情况最新消息今天
  • 网站设计建设代理机构网站测试报告