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

网站百度抓取博罗网站设计公司

网站百度抓取,博罗网站设计公司,wordpress子分页,中山做外贸网站前面粗咯的讲了类#xff0c;这篇详细介绍类及相关的概念 定义类使用关键字class class Person { /*...*/ }类声明由类名、类头#xff08;指定其类型参数、主构造函数等#xff09;和由{}包围的类体组成。类头和类体都是可选的#xff1b;如果类没有体#xff0c;可以省…前面粗咯的讲了类这篇详细介绍类及相关的概念 定义类使用关键字class class Person { /*...*/ }类声明由类名、类头指定其类型参数、主构造函数等和由{}包围的类体组成。类头和类体都是可选的如果类没有体可以省略{} class Empty构造函数Constructors 在kotlin中一个类有一个主构造函数和零个或多个次构造函数。主构造函数在类头中声明它位于类名和可选类型参数之后 class Person constructor(firstName: String) { /*...*/ }如果主构造函数没有任何注解或可见性修饰符可以省略constructor关键字 class Person(firstName: String) { /*...*/ }主构造函数在类头中初始化类实例及其属性。类头不能包含任何可运行的代码。如果你想在创建对象时运行一些代码可以在类体内使用初始化块。初始化块是用init关键字声明的后面跟着花括号。在花括号内编写你想要运行的任何代码 在实例初始化期间初始化块按照它们在类体中出现的顺序执行与属性初始化器交错 class InitOrderDemo(name: String) {val firstProperty 第一个属性: $name.also(::println)init {println(第一个init块 $name)}val secondProperty 第二个属性: ${name.length}.also(::println)init {println(第二个init块 ${name.length})} } fun main(){InitOrderDemo(张三) // 第一个属性 张三 // 第一个init块 张三 // 第二个属性: 2 // 第二个init块 2 }主构造函数的参数可以在初始化块中使用。它们也可以在类体中声明的属性初始化中使用 class Customer(name: String) {val customerKey name.uppercase() }kotlin有一种简洁的语法用于声明属性并从主构造函数中初始化它们声明也可以包括类属性的默认值 class Person(val firstName: String, val lastName: String, var isEmployed: Boolean true)就像常规属性一样主构造函数中声明的属性可以是可变的var或只读的val 如果构造函数有注解或可见性修饰符constructor关键字是必需的修饰符位于它之前 class Customer public Inject constructor(name: String) { /*...*/ }次构造函数 一个类也可以声明次要构造函数它们以constructor为前缀 class Person(val pets: MutableListPet mutableListOf())class Pet {constructor(owner: Person) {owner.pets.add(this)} }如果类有主构造函数则每个次要构造函数都需要直接或间接地通过另一个次要构造函数将其委托给主构造函数。使用this关键字完成对同一类的另一个构造函数的委托 class Person(val name: String) {val children: MutableListPerson mutableListOf()constructor(name: String, parent: Person) : this(name) { // 委托主构造函数parent.children.add(this)} }初始化块中的代码实际上成为主构造函数的一部分。在访问次要构造函数的第一条语句时将委托给主构造函数因此在次要构造函数的主体之前执行所有初始化块和属性初始化器中的代码 即使类没有主构造函数委托仍然会隐式发生并且仍会执行初始化块 class Constructors {init {println(Init block)}constructor(i: Int) {println(Constructor $i)} }fun main(){Constructors(1) } // Init block // Constructor 1如果没有定义任何构造函数则会自动生成一个public修饰的无参主构造函数 如果不想要有一个public修饰的无参构造函数需要手动定义一个private修饰的构造函数 class DontCreateMe private constructor(){ }fun main(){val dontCreateMe DontCreateMe() // 报错 - Cannot access init: it is private in DontCreateMe }当所有主构造函数参数都具有默认值时在JVM上编译器将生成一个额外的无参数构造函数该构造函数将使用默认值。这使得使用Kotlin与创建通过无参数构造函数的类实例的库例如Jackson或JPA更容易。 class Customer(val customerName: String )创建类实例 创建一个实例像调用一个方法一样简单 class Customer(var username: String) { }fun main() {val customer Customer(Joe Smith) }kotlin中创建实例不需要new 类成员 构造函数和初始化块Constructors and initializer blocks方法Functions属性Properties嵌套类和内部类Nested and inner classes对象声明Object declarations 继承 下篇文章讲解 抽象类 使用abstract关键字定义一个抽象类以及所有或者部分类成员抽象成员在类中没有被实现 abstract class Polygon {abstract fun draw() // 未实现的方法 }class Rectangle : Polygon() { // 继承Polygon类,实现deaw方法override fun draw() {// 方法实现} }如果是一个非抽象类或者方法如果想要被重写或者继承则需要使用open关键字修饰 open class Polygon {open fun draw() {// some default polygon drawing method} }abstract class WildShape : Polygon() {abstract override fun draw() }抽象方法可以重新非抽象方法 伴生对象 在没有类实例的情况下通过类名调用该类内部对象声明的成员可以定义伴生对象实现
http://www.zqtcl.cn/news/798490/

相关文章:

  • 分栏型网站服装设计网站模板
  • 建设网站备案与不备案区别企业网站怎么做排名
  • php mysql的网站开发html网站制作答辩ppt
  • 网站制作有名 乐云践新专家网页制作公司需要什么资质
  • 织梦怎么用框架实现在浏览器的地址栏只显示网站的域名而不显示出文件名电脑网站模板
  • 北京网络营销网站品牌营销增长公司哪家好
  • 网站反链有好处吗稷山网站建设
  • 廊坊网站群发关键词怎么在百度上推广自己的公司信息
  • 网站开发 沈阳免费模板建站
  • 商业性质网站建设步骤wordpress电影网盘
  • 网站的外部推广成都房产网官网
  • 深圳网站建设创想营销北京土巴兔全包装修价格表
  • 怎么发布php网站邯郸建设网站制作
  • 手机网站做多宽的图片wordpress顶部导航栏怎么创建
  • 如何做招聘网站的数据分析安徽黄山旅游攻略
  • 2022建站市场国际新闻直播
  • 茗哥网站建设装饰公司网站规划方案
  • 北京天津网站建设公司做平台网站要多久
  • 做我女朋友的表白句的网站做seo_教你如何选择网站关键词
  • 如何对网站用户分析徐州网站制作如何定位
  • 网站定制生成器龙岗网站设计讯息
  • 镇江市建设工程网站蜘蛛爬取网站
  • 个人备案网站可以做电影站吗微信做的地方门户网站
  • 网站上传根目录美点网络公司网站
  • 长春微信做网站网站开发和设计如何合作
  • 江门网站制作报价买网站不给我备案
  • 太原百度网站快速优化网站 后台 数据 下载
  • 某网站开发项目进度表天元建设集团有限公司赵唐元
  • 网站外链收录很多 内链收录几个西安网站seo优化
  • 网站源码制作网站产品类别顺序如果修改