【Dart学习】--Dart之超级父类之Object

一,概述 -- Object

Dart语言和Java一样,都是面向对象语言,所有的类也都有个公共的父类----->Object。该类位于Dart sdk核心库core目录下。

二,构造方法

//无参数构造方法。
const Object();

三,属性

//对象实例的哈希值,和Java中的一样
int hasCode
//对象在运行时所属类型
Type runtimeType;

四,方法

//在通过该类的实例对象调用该类中不存在的属性或者方法时,会执行该方法,默认实现是抛出NoSuchMethodException异常。
//子类可以覆写该方法,然后自定义实现方法。
dynamic noSuchMethod();
//返回实例对象的字符串表示,默认实现是该对象的哈希值字符串。也可以被子类覆写,自定义实现,和Java中的toString()一样。
String toString();

五,操作符

//等于操作符,用于进行两个该类对象的比较。默认是比较两个对象那个的哈希值。
//可被子类覆写,自定义实现,相当于Java中的Object类中的equals()方法。
bool operator ==(dynamic other);

除了==操作符可以被覆写,其他一些运算符也可以被覆写,具体那些可被覆写,请参考Dart语法介绍中的Operator篇

原文地址:https://www.cnblogs.com/lxlx1798/p/11371219.html

时间: 2024-08-01 13:06:17

【Dart学习】--Dart之超级父类之Object的相关文章

【dart学习】-- Dart之基础语法

一,重要概念 所有你能够赋值给一个变量的都是一个对象,无论是变量,数字,函数等都是一个对象.所有的对象都是类的一个实例.所有的对象都继承自内置的Object类.这一点类似于Java语言“一切皆对象”. 虽然Dart是强类型语言,但是类型声明是可选项(即不是必须的),因为Dart可以自己去推断类型.这点与JS和Swift很类似.比如var number = 1,变量number就被推断为int类型.当你想明确说没有类型时,可以使用特殊类dynamic/object声明(详情下面会讲到). Dart

学习笔记——Maven超级POM

Maven有一个超级POM,所有的POM均继承此文件.该文件定义如下:<project>   <modelVersion>4.0.0</modelVersion>   <repositories>     <repository>       <id>central</id>       <name>Central Repository</name>       <url>http://

[Guava学习笔记]Basic Utilities: Null, 前置条件, Object方法, 排序, 异常

我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3842433.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. Null Guava用Optional表示可能为null的T类型引用. 创建:Optional.of(T)不接受null Optional.fromNullable(T)接受null Optional.absent() 查询:isPresent() get() or(T)如果为null则为T o

【Cocos2D-X 学习笔记】Node父类的方法和属性

Node方法: 1.创建节点 Node *childNode=Node::create(); 该方法多为Node的子类调用create()静态方法进行创建实例 2.增加新的子节点:node->addChild(childNode,1,Tag); //1是指Z轴的索引,简单讲表示层号,这里addChild并不是个静态方法,因此需要进行指针调用,另外根据多态性(函数重载),其形参还可以是 addChild(childNode,int zOrder)  或者addChild(childNode); 3

【dart学习】-- Dart之函数

1. 指定返回值得函数 /** * 无返回值的函数 * params: 可以是任意类型(var和Object类型也可以任意类型). 当然这里的参数类型你可以随意指定我这里已dynamic为例 * 参数类型:你也可以指定var.Object等,再比如说你可以指定num, int,double, String.... * 如果我们对参数没有限制的话可以使用这个 */ void printDynamicParams(dynamic params){ print(params); } 主函数中我们调用p

【Dart学习】-- Dart之匿名方法&amp;闭包

一,匿名方法定义 (参数1,参数2,....){ 方法体... return 返回值 } 二,匿名方法特性 可赋值给变量,通过变量进行调用 可在其他方法中直接调用或传递给其他方法 void main(List<String> args) { //无参匿名函数 var func = () {  print("Hello");  }; func(); //有参匿名函数 var func1 = (str) {   print("Hello-------$str"

[dart学习]第六篇:流程控制语句

经过前面的基础知识了解学习,我们今天可以进入语句模块啦. dart主要有以下流程控制语句: if-else for循环 while和do-while循环 break和continue switch-case assert 当然,你还可以使用 try-catch或throw (一)if-else dart的if(或者else if)的条件表达式必须为bool表达式,不能使用其他类型.dart的if-else用法与C语言类似,不再细述. int a = 6; if(a<0) { print("

【Dart学习】-- Dart之消息循环机制[翻译]

概述 异步任务在Dart中随处可见,例如许多库的方法调用都会返回Future对象来实现异步处理,我们也可以注册Handler来响应一些事件,如:鼠标点击事件,I/O流结束和定时器到期. 这篇文章主要介绍了Dart中与异步任务相关的消息循环机制,阅读完这篇文章后相信你可写出更赞的异步执行代码.你也能学习到如何调度Future任务并且预测他们的执行顺序. 在阅读这篇文章之前,你最好先要了解一下基本的Future用法. 基本概念 如果你写过一些关于UI的代码,你就应该熟悉消息循环和消息队列.有了他们才

dart学习一 windows环境安装dart环境

安装dart sdk https://dart.dev/get-dart 现在dart是2.3.1 可通过 Chocolatey 方式安装,或者直接下载安装包. 下载的安装包其实是个壳,通过壳需要另外下载其他文件,速度很慢. Chocolatey 类似 apt-get yum之类的包管理工具,不过Chocolatey 是在 win 下运行. https://chocolatey.org/ https://chocolatey.org/install Chocolatey 有个好处就是会管理升级这