面向对象实例补充
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象实例补充相关的知识,希望对你有一定的参考价值。
面向对象的特征:
- 封装:就算对象内部的数据结构改变了,只要公开给外部的方法名、功能没有改变,使用者就照常使用即可,比如我们去调用Time类的方法。
- 多态:Object类、String类和Float类的各个对象调用to_s的方法,得到的结果是不一样的。
多态的思考方法----鸭子模型
"能像鸭子那样走路,能像鸭子一样啼叫的,那一定是鸭子",注重对象的行为(走路、啼叫都像鸭子),那么不管是不是真的鸭子都把它当作鸭子。举例如下:
fetch_and_downcase只要求(能以ary[index]形式获取元素,获取的元素可以执行downcase方法),所以只要能有这些行为,不管是数组还是散列,这就是鸭子模型。
面向对象的例子:
概念和网络知识补充:
体系----是指使用哪种通信协议
连接网络上的服务器----需要知道服务器的主机名和端口号,如下Ruby官网服务器主机名是www.ruby-lang.org(就是跟127.0.0.1那个一样,只不过它不是本地调试,提供外部访问的域名),端口号是80.
路径----通过主机名和端口找到服务器后,要访问特定文件,还需要路径定位到服务器上资源的位置
现阶段我们只要知道URL是URI的一种就可以了。
获取Ruby官网首页的html,并将其输出到控制台的例子:
着重讲一下第五行调用Net::HTTP #get方法的时候,具体进行的流程:
- 使用主机名和端口号,与服务器建立通信(叫做 用主机名和端口号,与服务器建立通信(叫做 socket,套接字)
② 使用路径,创建代表请求信息的 Net::HTTPRequest 对对象
- 对套接字写入请求信息
④ 从套接字中读取数据,并将其保存到代表响应信息的 Net::HTTPResponse 对象中
- 利用 Net::HTTPResponse 本身提供的功能,解析响应信息,提取文档部分并返回。
流程图如下所示:
以上是关于面向对象实例补充的主要内容,如果未能解决你的问题,请参考以下文章