从零构建以太坊(Ethereum)智能合约到项目实战——学习笔记4

P10 、1-Solidity面向对象编程 - 类和对象

面向过程编程

我想听音乐为例子:

1、打开电脑

2、打开音乐播放器

3、搜索一首歌曲

4、播放歌曲

5、暂停

6、下一首

7、音量调节

8、关闭音乐播放器

9、关闭电脑

按照预设的顺序一步一步的去执行,这个过程就是面向过程编程。

面向对象编程

对象:电脑、音乐播放器

电脑-》属性:颜色、尺寸、价格、酷我音乐

电脑-》方法/行为:开机、关机,安装酷我音乐,卸载酷我音乐

酷我音乐-》属性:皮肤,11M,¥41,1000歌

酷我音乐-》方法/行为:启动酷我音乐、关闭酷我音乐、搜素歌曲、下一首歌、上一首歌、暂停、调节音量、播放

面向对象实现上面的程序:

1、【电脑-》开机】

2、【酷我音乐-》启动】

3、【酷我音乐-》搜索】

4、【酷我音乐-》播放】

5、【酷我音乐-》调节音量】

6、【酷我音乐-》暂停】

7、【酷我音乐-》播放】

8、【酷我音乐-》关闭】

9、【电脑-》关机】

类和对象

苹果电脑(类):小明的电脑、谢霆锋的电脑、张柏芝的电脑、汪峰的电脑(对象)

明星(类):章子怡、撒贝宁、刘德华、成龙(对象)

武功秘籍(类):降龙十八掌、九阴真经、辟邪剑法、打狗棒法(对象)

总结:

类:类它是一个抽象的概念,它将一堆相似的东西共同的属性和行为抽象出来,所有抽象出来的属性和行为组成一个类,可以通过类去**实例化**N多个对象。

P11 、2-如何通过Solidity实现一个类(合约)

solidity在线编辑器:#optimize=false&version=soljson-v0.5.1+commit.c8a2cb62.js

编写智能合约可以通过atom来进行编写,也可以通过在线编辑器编写

1、编写智能合约SmartContract

pragma solidity ^0.4.4; /* pragma:版本声明 solidity:开发语言 0.4.4:当前合约的版本,0.4代表主版本,.4代表修复bug的升级版 ^:代表向上兼容,0.4.4~0.4.9可以对我们当前的代码进行编译 */ //contract Person 类比 class Person extends Contract{} contract Person{ uint _height;//身高 uint _age;//年龄 address _owner;//合约的拥有者 //方法名和合约名相同时就属于构造函数,在创建对象时,构造函数会自动最先被调用 function Person(){ _height = 180; _age = 29; _owner = msg.sender; } function owner() constant returns (address){ return _owner; } //set方法,可以修改_height属性 function setHeight(uint height){ _height = height; } //get方法,可以查看读取_height属性 //读取方法不需要消耗gas //constant 代表方法只读 function height() constant returns(uint) { return _height; } function setAge(uint age){ _age = age; } function age() constant returns(uint) { return _age; } function kill() constant{ if(_owner == msg.sender){ //析构函数 selfdestruct(_owner); } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxxys.html