首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【Kotlin】object 对象 ( object 关键字 | 对象声明 | 对象表达式 | 伴生对象 )

文章目录 一、object 关键字 二、对象声明 三、对象表达式 四、伴生对象 一、object 关键字 ---- object 关键字 可以定义 单例类 ; 使用 object 关键字修饰的类 ,...只能创建一个实例对象 ; object 有 3 种使用方式 : 对象声明 : 定义单例类 ; 对象表达式 : 定义匿名内部类 ; 伴生对象 : 定义静态成员 ; 二、对象声明 ---- 使用 object...关键字 进行 对象声明 , 就是 定义单例类 ; 对象声明格式 : object 单例类类名 {} 代码示例 : object Student { var name = "Tom" var...三、对象表达式 ---- 使用 object 关键字 声明 对象表达式 , 就是 Kotlin 中的匿名内部类 ; 该类只使用一次 ; 定义 对象表达式 ( 匿名内部类 ) 是由于要 修改 类中的函数..., 常见的是要 覆盖重写函数 , 该 类 以及要 重写的函数 必须是用 open 修饰 ; 使用 对象表达式 创建出来的 匿名内部类 对象 , 只有 1 个实例对象 ; 下面的 对象表达式 ( 匿名内部类

84830

前端入门10-JavaScript语法之对象声明正文-对象

声明 本系列文章内容全部梳理自以下几个来源: 《JavaScript权威指南》 MDN web docs Github:smyhvae/web Github:goddyZhao/Translation/...创建对象 创建对象有三种方式对象直接量、构造函数、Object.create() 对象直接量 这是最简单的一种创建对象方式,在代码中,直接通过 {} 形式创建一个对象,如: var book = {...添加属性 但需要注意一点的是,不像 Java 中在编写类代码,为类添加成员变量时,可以只声明却初始化。在 JavaScript 中,是不允许这样的。...查询属性 访问对象的属性方式很简单,两种:. 运算符或 [] 运算符; 两种方式都可以访问对象的属性,但有一个区别: ....而之前说过的,通过 var 声明的全局变量,虽然它最后是作为全局对象的属性存在,但它的可配置性被设为 false,所以这些全局变量才无法通过 delete 被删除。

85430

对象的使用方式

1.1、案例 需求:生成一个人的对象 Person p1=new Person(); 当我们声明完p1对象后,在内存栈中,我们可以查看到p1的地址,在内存堆中,我们可以看到我们类中的属性与方法。...在使用对象时,我们是先找到对象的栈地址,在找到堆中的实际内容。 1.2、基本数据类型 需求:定义一个整型变量 int a=100; 当我们声明变量a时,只是在内存栈中开辟了一个直接存放内容的空间。...1.3、引用数据类型 需求:定义一个人类对象,并初始化 Person p=new Person(); p.name="小明"; p.sex="boy"; 图片 当我们声明p对象时,在我们的内存栈中,...,不同的值 p1.shout(); p2.shout(); } } 运行结果: 在我们的主函数里,声明了p1,p2二个对象,p1,p2对象分别在我们的内存中开辟了二个不同的空间...2.2、对象创建 格式: 类名 对象名称 = null; //声明对象 对象名称 = new 类名(); //实例化对象 案例: public class Person {

39520

Kotlin 类声明与伴生对象(companion)

static 方法无法声明为接口,无法被重写——用更学术的话来说,static 方法没有面向对象的消息传递和延迟绑定特性[参考]。...而 Scala 为了完成一切皆对象的使命,以及提高与 Java 的兼容性,提出了伴生对象这个概念来代替 static 方法。随后出身的 Kotlin 也借鉴了这个概念。...companion 伴生对象是一个对象,它在类初始化时被实例化。...因为伴生对象不再是类的 static 方法,而是某个类的实例化对象,所以它可以声明接口,里面的方法也可以被重写,具备面向对象的所有特点。...在这里,Kotlin 希望能够实例化 Companion 类,但又不想声明一个 public 的构造器,于是就声明了这样一个特殊的构造器。

2.5K10

javascript 面向对象(多种创建对象方式

= function(){ return this.name; } 第二种:对象字面量方式(比较清楚的查找对象包含的属性及方法) var person = { name : 'My name...以这种方式调用构造函数实际上会经历以下 4个步骤: (1) 创建一个新对象; (2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象); (3) 执行构造函数中的代码(为这个新对象添加属性...person2.color);  //["red", "yellow", "black"]  //person1的修改影响了person2 4、组合使用构造函数模式及原型模式 目前最为常用的定义类型方式...该方式只原型上方法或属性只定义一次,且将所有构造过程都封装在构造函数中,对原型所做的修改能立即体现所有实例中: function Person(name, age, job) { this.name...= 'function') {//通过判断实例封装   Person.prototype = {     constructor: Person,//原型字面量方式会将对象的constructor变为Object

92861

Kotlin中的对象表达式和对象声明的具体使用

对象表达式可访问或修改其所在范围内的局部变量 二、对象声明和单例模式 对象声明的语法格式如下: object ObjectName [: 0~N个父类型]{ //对象表达式的类体部分 } 对象声明对象表达式的语法很相似...两者还有如下区别: 对象表达式是一个表达式,可以被赋值给变量;而对象声明不是表达式,不能用于赋值。 对象声明可包含嵌套类,不能包含内部类;而对象表达式可包含内部类,不能包含嵌套类。...对象声明不能定义在函数和方法内;但对象表达式可嵌套在其他对象声明或非内部类中。...对象声明专门用于实现单例模式,对象声明所定义的对象也就是该类的唯一实例,程序可通过对象声明的名称直接访问该类的唯一实例。...三、伴生对象和静态成员 在类中定义的对象声明,可使用companion修饰,这样该对象就变成了伴生对象

1.2K31

详解JavaScript对象继承方式

一、对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。...二、原型链继承 众所周知,JavaScript 是一门基于原型的语言,在 JavaScript 中 prototype 对象的任何属性和方法都被传递给那个类的所有实例。...四、混合方式 对象冒充的主要问题是必须使用构造函数方式,这不是最好的选择。不过如果使用原型链,就无法使用带参数的构造函数了。如何选择呢?答案很简单,两者都用。...在 JavaScript 中创建类的最好方式是用构造函数定义属性,用原型定义方法。...joe. c.getAge(); // 输出: 30 五、使用Object.create 方法 Object.create 方法会使用指定的原型对象及其属性去创建一个新的对象: // 父类构造函数 var

43240
领券