当前位置: 首页 > news >正文

南宁网站建设方案服务/厦门seo外包公司

南宁网站建设方案服务,厦门seo外包公司,wordpress头像上传100kb,网站建设的违约责任怎么写ruby语言跟c#的一些重要差别在于: 1.ruby是动态语言,c#是静态语言--即对象在new出来以后,ruby还可以动态给对象实例添加一些属性或方法(javascript也是如此) 2.ruby中刻意弱化了变量类型这个概念,默认情况下变量/方法都不需要声明…

ruby语言跟c#的一些重要差别在于:

1.ruby是动态语言,c#是静态语言--即对象在new出来以后,ruby还可以动态给对象实例添加一些属性或方法(javascript也是如此)

2.ruby中刻意弱化了变量类型这个概念,默认情况下变量/方法都不需要声明具体(返回)类型,但其实在ruby内部,会自动根据变量的值分配类型。(可以通过 “puts 变量.class“查看)

3.ruby相对c#来讲,可能有些雷的地方在于:父类中的private成员,居然是可以在子类中使用的!

...其它地方,等学习深入了再写出来

 

最后上一段测试代码,展示了ruby中类的基本用法:

class People #跟javascript这类动态语言一样,ruby中的类也没有public,private这类访问控制标识符def initialize(_name) #构造函数,名字是固定:initialize@name = _name; #约定:类的私有变量以@开头enddef to_string #类似C#中的做法,这里写一个ToString方法的ruby版"My name is #{@name}" #ruby中方法最后一行的值,会被当作函数值返回enddef get_name_sizereturn @name.length #这个方法中返回的是数字型(即名称的长度)enddef test #类定义的最后部分,把这个方法标记为私有方法了puts "private method(test) in People."enddef show_nametest #私有方法,可在内部调用puts "name = #{@name}"endattr_accessor:name #定义一个可读写的属性,这里也体现了ruby的一个重要思想:约定重于规范,因为@name在之前已经使用过,这里的属性只需要把@去掉,ruby就会自动智能的生成类似c#中 set{value = @name},get{return @name}的语句private:test #标明test方法是private属性的protected:get_name_size #标明get_name_size只能在本类或子类定义中使用(或者在子类定义中赋值给子类实例)endaPeople = People.new("jimmy");#创建一个People的实例puts aPeople.to_string #调用to_string方法#puts aPeople.get_name_size #将报错,因为该方法受保护#puts aPeople.test #将报错,因为该方法是私有方法aPeople.show_nameputs aPeople.nameaPeople.name = "杨俊明" #修改姓名aPeople.show_name#再定义一个子类class Man < People	def initialize(_name)super@sex = trueend	attr_reader:sex #定义只读属性sexdef call_protected_methodputs get_name_size #调用父类的受保护方法enddef call_protected_method2(man1)puts man1.get_name_size #注意这里:这里可以把父类的受保护方法,动态添加到子类实例enddef call_private_method #子类可以调用父类的私有方法!!! 这一点刚开始很不习惯testend def call_private_method2(man1)man1.test #注意这里:语法检查虽然可以通过,但是运行时会提示私有方法无法调用,这也是private与protected的区别endendputs "******************************"aMan = Man.new("jimmy.yang");aMan.show_nameaMan.call_protected_methodputs aMan.sexaMan.call_private_methodaMan2 = Man.new("Mike")aMan.call_protected_method2(aMan2);#aMan.call_private_method2(aMan2);a = "abc";#aMan.call_protected_method2(a); #虽然ruby本身对变量没有类型概念,但是这样却不行,即:在调用父类的受保护方法时,其实是要类型匹配的puts aMan.class #显示aMan的类名称

运行结果如下:

>ruby classDemo.rb
My name is jimmy
private method(test) in People.
name = jimmy
jimmy
private method(test) in People.
name = 杨俊明
******************************
private method(test) in People.
name = jimmy.yang
10
true
private method(test) in People.
4
Man
>Exit code: 0

转载于:https://www.cnblogs.com/yjmyzz/archive/2010/02/10/1667326.html

http://www.lbrq.cn/news/1118827.html

相关文章:

  • 网站建设数据库是什么意思/广告位招商怎么找客户
  • 网站建设专家/近两年网络营销成功案例
  • 带孩子做网站/企业推广平台排行榜
  • 在线定制logo/西安网站seo诊断
  • 旅游网站设计模板图片/文娱热搜榜
  • 民宿客栈网站制作/宝鸡seo排名
  • 济南外贸网站建设公司/杭州网站优化多少钱
  • 深圳购物商城网站建设/某网站seo策划方案
  • wordpress网站打不开/裤子seo标题优化关键词
  • 微信开放平台与个人网站怎么/上海培训机构整顿
  • 凡客诚品官方网店下/seo站长工具查询
  • 做网站需要学会写代码吗/网站优化联系
  • 月编程做网站/网站推广优化公司
  • 老师用什么网站做ppt/怎么找平台推广自己的产品
  • 网站建设论文的摘要/百度应用app
  • 建站系统做网站/今日头条新闻军事
  • 网站内容批量替换/引流软件
  • 门户网站建设自查/如何让自己的网站被百度收录
  • 网站建设价格便宜/如何免费搭建自己的网站
  • 泾川县建设局网站/网站建设公司大全
  • 深圳网站建设外贸公司/建站cms
  • java jsp做网站/百度客户服务电话
  • 网站做优化一开始怎么做/推广如何做网上引流
  • 网站如何做QQ登录/百度指数明星搜索排名
  • 个人网站做哪些内容/推广专员
  • 唐山中小企业网站制作/网络营销团队
  • 工商登记网站/百度网盘app
  • 武汉企业管理培训课程/沈阳网站制作优化推广
  • wordpress备份数据库/排名优化网站
  • 郑州 (网站建设/百度推广费用多少钱
  • 分块(chunked) vs 滑动窗口(windowed)
  • 前端面试专栏-工程化:25.项目亮点与技术难点梳理
  • AI辅助Python编程30天速成
  • Linux进程信号--1、信号产生
  • C#,List<T> 与 Vector<T>
  • 【安卓笔记】RxJava之flatMap的使用