最近突然鬼迷心窍,决定去研究一下如何写 Sketch 的插件。打算重新捡起一下从毕业就开始丢掉的代码开发之余,也希望产出的插件能为自己平时工作中稍作提效。
经过一系列的摸爬滚打,我已经成功锤出人生中第一个有实用性的插件,接下来,我还要学习更多,在此,希望以日记的形式,记录整个学习的过程。Sketch 插件开发相关的教程、资料非常地少,在此也希望能为后来者尽一份绵力。
继续阅读最近突然鬼迷心窍,决定去研究一下如何写 Sketch 的插件。打算重新捡起一下从毕业就开始丢掉的代码开发之余,也希望产出的插件能为自己平时工作中稍作提效。
经过一系列的摸爬滚打,我已经成功锤出人生中第一个有实用性的插件,接下来,我还要学习更多,在此,希望以日记的形式,记录整个学习的过程。Sketch 插件开发相关的教程、资料非常地少,在此也希望能为后来者尽一份绵力。
继续阅读相信使用 C#、winforms 编写界面的朋友都遇到过在程序调用摄像头时弹出“选择摄像头源”并且摄像头展示 panel “黑屏”的情况,网上关于此类问题有相当多的提问,但回答却大多不尽人意,正好最近在写毕设时也踩到了这个坑上,研究出了一个解决办法,虽不能非常完美的解决问题,但至少能保证每次都成功启动摄像头
继续阅读一般说来,把数据声明为 private 进而封装起来更符合现实逻辑,然而,在对象外部对已封装的数据进行读写操作往往非常频繁,虽然可以像上文那样为每个数据都编写一个 getxxx() 和 setxxx() 方法,但这就意味着程序里面会出现非常多的 getxxx() 和 setxxx() 方法。一旦由于某些原因而导致类内部的 get 或者 set 方法需要重新命名,那需要修改的地方将会是茫茫多……
于是,从 php5 开始,php 给我们预定义了 4 个方法:
function __get(){
}
function __set(){
}
function __isset(){
}
function __unset(){
}
继续阅读
前文说到,封装性是面向对象的三大特征之一。它的核心思想在于把数据域隐藏,使其相对独立并提供相应的方法对其进行操作。它的好处在于能有效防止数据被篡改以及使得类更易于维护。封装性强调以下两点
封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的”交叉感染”,使软件错误能够局部化,大大减少查错和排错的难度。
继续阅读大多数类都有一种称为构造函数的特殊方法。每当由该类实例化创建一个对象时,程序将自动调用其构造函数,也就是使用 new 这个关键字来实例化对象的时候会自动调用构造函数。构造函数的声明与其它操作的声明一样,只是其名称必须是 __construct()。这是 php5 中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在 php5 中仍然可以用,但现在以经很少有人用了。统一使用 __construct() 这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称。为了向下兼容,如果一个类中没有名为 __construct() 的方法,php 将搜索一个 php4 中的写法,与类名相同名的构造方法。
继续阅读通过前边的的学习我们已经了解了如何去定义一个类,如何由一个定义好的类实例化出对象与使用该对象中的成员。我们知道要在外部调用一个对象的某个成员用的是” $对象名 -> 成员名 “这样的语法,那么如果对象本身要引用到对象本身的成员,如何从对象内部来调用一个对象的成员呢。这就要用到我们的特殊引用 $this
继续阅读通过上一节的学习咱们已经懂得了如何去定义一个类,本节将会给大家介绍如何将一个定义好的类实例化成对象以及如何使用对象,访问对象中的数据域以及方法,修改其中数据域的值等。其中也会穿插一些关于数据时如何存放在内存当中的小知识
继续阅读我们知道,面向对象程序的单位就是对象,而对象又是通过类的实例化出来的,所以,我们首先要做的就是声明一个类。做出来一个类很容易,只要掌握基本的程序语法定义规则就可以做的出来。如下所示:
class 类名{
//在这里部署代码
}
使用一个关键字class和后面加上一个你想要的类名以及加上一对大括号, 这样一个类的结构就定义出来了。但光有结构是不够的,更重要的是里面的内容,下面我们就以“人”为模板,来编写一个类。
我们在描述一个“人”时,通常都会把描述分为两部分:一是描述一些特征如人的姓名,性别,年龄,身高……;二是描述一些他能做的事情:会讲英语,会编程序……。在编程的时候,我们通常把静态的特征定义成属性,用来描述这个类或者实例,把能做些什么,定义成方法或者叫函数(Java里面爱叫方法而C++里面爱叫函数)
class 人{
成员属性:姓名,性别,年龄,身高,体重,电话,家庭住址……
成员方法:会讲英语,会编程序,会做设计……
}
通过在类定义中使用关键字” var “来声明变量,即创建了类的属性,虽然在声明成员属性的时候可以给定初值, 但是在声明类的时候给成员属性初始值是没有必要的,比如说要是把人的姓名赋上“张三”,那么用这个类实例出几十个人,这几十个人都叫张三了,所以没有必 要, 我们在实例出对象后给成员属性初始值就可以了。
<!--?php
class classname{
var $somevar; //声明变量
}
?-->
通过在类定义中使用如的以下例子来声明函数,即创建了类的方法。每个由该类实例化的对象都享有这些方法
<!--?php
class classname{
function somefun(参数列表){ //定义函数
//代码
}
}
?-->
下面我们就可以把“人”来模拟成一个类了
<!--?php
class person {
var $name;
var $sex;
var $age;
var $hight;
var $weight;
var $phoneNum;
var $address;
function canSpeakEnglish() {
echo "I can speak English";
}
function canProgram() {
echo "I can program";
}
function canDesign() {
echo "I can design";
}
}
?-->
上面就是一个类的声明, 从属性和方法上声明出来的一个类。如果你已经掌握了以上定义类的步骤与方法,那用同样的方法你也可以写出别的类,比如圆类:
class 圆{
成员属性:半径长度
成员方法:求周长和面积
}
代码如下:
<!--?php
class circle {
var $radius;
function getGirth() {
echo 2 * 3.14 * $this->radius; // $this->radius 用于调用 $radius,第三第四章会详细介绍
}
function getArea() {
echo 3.14 * $this->radius * $this->radius;
}
}
?-->
至此,你也能写出一个类啦!要不,赶紧写个矩形的类试试?
面向对象程序设计(Object Oriented Programming, OOP),有别于面向过程程序设计(Procedure Oriented Programming, POP),它强调“对象”这一个概念,面向对象程序设计就是使用对象进行程序设计。要理解什么是面向对象程序设计,就不得不先理解两个概念————“对象”和“类”。那么,什么是“对象”,什么是“类”呢?
版权所有 © 2025 吴嘉豪的博客
主题设计 Anders Noren — 返回顶部 ↑