版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wtdask/article/details/81944349
面向过程编程
C语言是面向过程的编程语言。(但是C语言同样也可以进行面向对象编程,假如你的功底很深的话)
按照预设的顺序一步一步的去执行的过程,就是面向过程编程
例如:我想听音乐
- 打开电脑
- 打开音乐播放器
- 搜索歌曲
- 播放歌曲
- 暂停
- 下一首
- 音量调节
- 关闭音乐播放器
- 关闭电脑
面向对象编程
语言很多,包括:C++,Java,iOS, C#….
随着开发年限的增涨,对面向对象的思想也不会不断加深
如上面的例子:就包含2个对象,电脑和音乐播放器
- 电脑:属性-> 大小,颜色,价格,音乐播放器(电脑安装的软件都可以被称为电脑的属性)
- 电脑:方法/行为:开机,关机,安装播放器,卸载播放器
- 音乐播放器:属性->皮肤,大小(11M),价格(¥10)
- 音乐播放器:行为/方法->启动播放器,关闭播放器,搜索歌曲,播放歌曲,暂停播放,下一首播放,音量调节
面向对象实现上面的程序
- {电脑 开机}
- {音乐播放器 启动}
- {音乐播放器 搜索}
- {音乐播放器 播放}
- {音乐播放器 调节音量}
- {音乐播放器 暂停}
- {音乐播放器 下一首}
- {音乐播放器 关闭}
- {电脑 关机}
对象仅仅提供接口(方法),来供外界使用。启动,搜索,播放,调节音量,暂停,下一首,关闭都属于音乐播放器提供给外界的接口。
类和对象
类 | 对象 | 对象 |
---|---|---|
苹果电脑 | 小明的电脑 | 奥巴马的电脑 |
明星 | 刘亦菲 | 周星驰 |
武功秘籍 | 降龙十八掌 | 九阴真经 |
我们可以把类理解为一张设计图,对象就是根据这张设计图设计出来的实体。
从编程的角度理解:
int a;
int b;
int 可以理解为类,a,b可以理解为对象
Counter counter = new Counter();
Counter 可以理解为类,counter可以理解为对象
总结
类:类是一个抽象的概念,它将一堆相似的东西共同的属性和行为抽象出来,所有抽象出来的属性和行为组成一个类。可以通过类去实例化
N多个对象
对象:对象是一个具体的东西,有具体的属性值和方法行为。
如何通过Solidity实现一个类(合约)
通过Atom编写智能合约,也可以通过https://remix.ethereum.org.
pragma solidity ^0.4.4;
/*
pragma:版本声明
solidity:开发语言
0.0.1:当前合约的版本,0.0代表主版本,.1代表修复BUG的升级版
^:向上兼容 0.0.1 ~0.0.9可以对我们当前的代码进行编译
*/
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;
}
//读取_height 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);
}
}
}
每一次创建新的合约,合约地址都是不一样的。