20150109--面向对象+对象传值-01

回顾

mysql:函数和存储过程

-- 创建表

create table my_name(name char(2) not null)charset utf8;

-- 定义全局变量

set @first = ‘甲乙丙丁戊己庚辛壬癸‘;

set @second = ‘子丑寅卯辰巳午未申酉戌亥‘;

-- 创建存储过程

delimiter $$

create procedure createName(in int_1 int)

begin

-- 循环变量

declare i int default 0;

-- 获取姓氏和名字

mywhile:while i < int_1 do

-- 获取姓名

set @name = substring(@first,round(rand() *9 + 1),1);

-- 获取名字

set @name = concat(@name,substring(@second,round(rand() * 11 + 1),1));

select name from my_name where name = @name into @temp_name;

if @temp_name is null then

-- 将名字插入数据库

insert into my_name values(@name);

else

-- 循环不算

iterate mywhile;

end if;

-- 改变循环变量

set i = i + 1;

end while;

end

$$

delimiter ;

HTTP协议:HTTP请求和HTTP响应

HTTP请求:请求行(请求方式 URI 协议版本),请求头,空行,请求数据(POST才有)、

HTTP响应:状态行(协议版本 状态码 状态描述),响应头,空行,响应体

状态码分类

1XX:服务器正在接收

2XX:服务器已经成功处理

3XX:服务器告诉浏览器重定向

4XX:请求错误

5XX:服务器处理错误

常见的状态码

200:ok,表示已经成功处理

302:重定向,浏览器应该直接发起新的请求,对应的就是location

403:Forbidden,禁止访问,没有权限

404:not found,找不到对应的文件

502:服务器从上级服务器接收结果时出现错误

需求:帮助传智播客做一套网上销售系统,卖教材。用户能够选择某一个商品,加入购物车,通过点击结算来生成订单,可以进行在线支付(银行支付+支付宝支付),用户可以查看订单状态,传智在收到确认订单之后,可以选择发货,有订单状态。

解决方案1:面向过程思想

以上方案能够解决问题,但是与现实生活中的真实处理有点不一样。

解决方案2:面向对象编程

面向对象编程

1. 什么是面向对象编程?

面向对象编程不是技术,是一种思想,是一种将程序的设计符合自然界中事务发展的规律的思想。

面向对象基本概念

在面向对象编程里有几个基本概念:类,实例化,对象(实例)

类是自然界中对某一类具有共同属性和能力的事务(实体)的集合(分类)

类指的是将拥有共同属性和能力的实体,将该共性抽离处理,形成文字的描述,最终转换成系统的所能识别的代码的过程称之为抽象。

类:是对象的抽象。

类关键字:class

语法:定义类

class 类名{

//类成员

}

对象

自然界中存在的任何一个个体都称之为对象,对象必须与对应的类有关系。

对象:是类的实例化。对象也被称之为实例。

对象:是类的具象。

object

实例化

实例化就是从一个抽象的描述中去得到一个具体的个体的过程称之为实例化。

实例化:类得到对象的过程

实例化关键字:new

实例化的结果就是产生类的对象。

类成员

类成员:所有定义在类内部的结构,类里面只能有类成员,不能有任何其他的东西。

类成员:属性(变量),方法(能力:函数),类常量(定义在类里面的常量)

属性

定义在类中的变量

原因:类里面定义的属性,需要指定可以被访问的范围。在类中定义的属性需要使用访问修饰限定符来控制。

访问修饰限定符有三种:public,protected和private

public:公有的,属性可以在类意外的地方使用

protected:受保护的,属性只能在类的内部使用(如果有继承,可以在子类内部使用)

private:私有的,只能在当前类的内部使用,其他任何地方都不能使用

php在5以前没有这三种访问修饰限定符,使用var关键字,var关键字默认的代表的意思就是public

属性与对象的关系:所有的属性都保存在对象里面

访问属性:属性是属于对象的,因此属性的访问应该是对象访问。

语法:

访问:对象变量->属性名;

修改:对象变量->属性名 = 值;

方法

方法:类里面定义的函数

查看对象

说明:方法不在对象里面,说明一定是在类里面。

调用方法

方法依然是通过对象来进行调用

对象->方法名(实参列表);

访问修饰限定符的限制

类常量

定义在类里面的常量。

类常量必须使用const关键字定义

const 常量名 = 值;

常量与对象的关系

常量不能通过对象访问

私有访问

对带有私有(private)关键字修饰的属性和方法的访问(protected与私有一样)。

private:只能在类的内部进行使用,只能在类中定义的方法的内部去使用。

在类的内部有一个关键字能够代表当前进入到类内部的对象:$this

$this只能在类的内部使用(只能在方法里面使用)

类与对象的内存分析

时间: 2024-10-04 00:35:03

20150109--面向对象+对象传值-01的相关文章

20150109--面向对象+对象传值-00

魔术方法 魔术方法也是一种方法,是一种在类内部定义的方法.魔术方法会在某个特定的情况下自动的被对象调用. 构造方法 构造方法就是对象在实例化之后会自动调用的方法. 语法:__construct() 构造方法的意义:给对象的属性进行初始化 兼容性构造方法 在低版本中没有构造方法__construct(),与其他语言一样,构造方法的名字与类名一致 兼容构造方法处理方式 析构方法 析构方法:对象被销毁的时候(销毁前),会自动调用的方法 语法:__destruct() 析构方法的意义:往往是为了释放内存

9、Cocos2dx 3.0游戏开发找小三之工厂方法模式与对象传值

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27704153 工厂方法模式 工厂方法是程序设计中一个经典的设计模式,指的是基类中只定义创建对象的接口,将实际的实现推迟到子类中. 在这里,我们将它稍加推广,泛指一切生成并返回一个对象的静态函数. 一个经典的工厂方法如同这样: Sprite* factoryMethod() { Sprite* ret = new Sprite(); //在这里对 ret

Java面向对象-对象的多态性

Java面向对象-对象的多态性 Java中的多态性表现: 1,方法的重载和重写(覆盖): 2,可以用父类的引用指向子类的具体实现,而且可以随时更换为其他子类的具体实现: 我们先搞个父类Animal: 1 package com.java1234.chap03.sec13; 2 3 public class Animal { 4 5 public void say(){ 6 System.out.println("我是一个动物"); 7 } 8 } 再搞两个子类,分别是Dog和Cat类,

第163天:js面向对象-对象创建方式总结

面向对象-对象创建方式总结 1. 创建对象的方式,json方式 推荐使用的场合: 作为函数的参数,临时只用一次的场景.比如设置函数原型对象. 1 var obj = {}; 2 //对象有自己的 属性 和 行为 3 // 属性比如: 年龄.姓名.性别 4 // 行为: 吃饭.睡觉.走路.讲课等... 动作 5 var obj2 = { 6 name: 'laoma', 7 age: 18, 8 sayHi: function(){ 9 console.log( name + 'say hi' )

(一)Python入门-6面向对象编程:01面向对象和面向过程区别-对象的进化

面向对象: 面向对象(Object oriented Programming,OOP)编程的思想主要是针对大型 软件设计而来的.面向对象编程使程序的扩展性更强.可读性更好,使的编程可以像搭 积木一样简单. 面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式 更加接近人的思维,从而大大提高了编程的效率. Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向 对象的基本功能,例如:继承.多态.封装等. Python中,一切皆对象.我们在前面学习的数据类型

IOS各种传值之一(对象传值)

1:在不同的controllerview之间通过对象进行传值 //传值方向 从A到B //A控制器 界面: // //  ViewController.h //  Index // #import <UIKit/UIKit.h> #import "Person.h" @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *name; @pro

前端对象传值

var obj=new Object();  //首先建立一个对象obj obj=$('form').serializeArray();  //obj获取序列化表单作为对象数组! obj= JSON.stringify(json); //将对象数组转化为JSON 格式                                                                        $.post("checkbox.php",{obj},function(re

第二课 第六节 面向对象(对象与类)、命名规范

1.面向对象 --一切事物皆对象,通过面向对象的方式,将现实世界的事物 抽象成对象,现实世界中的关系抽象成类.继承,帮助人们 实现对现实世界的抽象与数字建模. 2.对象 --对象是具体存在的.看得见.摸得着.可以直接使用的东西. 3.类 --类的实质是一种数据类型,类是对现实生活中一类具有共同特 征的事物的抽象. 4.变量的命名规范 --变量名应该是一个名词 --如果只有一个单词则全部小写,如果多个单词,除一个单词 以外,其余首字母大写.若变量是缩写,应该全部大写. --变量命名要有意义,不能乱

Python学习第三天(面向对象编程)01

面向对象编程(OOP) 程序 = 指令 + 数据 两种范型 面向过程: 以指令为核心:围绕"正在发生什么"进行编写 程序具有一系列线性步骤:主体思想是代码作用于数据 面向对象: 以数据为核心:围绕"将影响谁"进行编写 围绕数据及为数据严格定义的接口来组织程序,用数据控制对代码的访问 所有编程语言的最终目的都是提供一种抽象方法 在机器模型("解空间"或"方案空间")与实际解决的问题模型 ("问题空间")之间,