Ruby学习之路-类,对象,变量

VBA中如何使用Edge内核Browser? 在微软宣布停止对IE的支持后,许多使用VBA中Web Browser的用户遇到了困境,因为Web Browser使用的IE内核。然而微软并没有给出支持Edge的新版Web Browser,网上许多第三方的库也不够完善。经过调研,libEdge可以较好的和VBA集成,实现在Excel中打开Browser,甚至能够通过执行js代码,获取web页面的信息。项目需要WebView2Loader.dll和LibEdge.dll两个库,区分x86和x64版本。 阅读详情

1、先来看一个类:
class Fruit
 #构造方法
 def initialize(name, weight)
  @name = name;
  @weight = weight;
 end
 
 #打印MyWife信息
 def printInfo
  print("name:", @name, " weight:", @weight);
 end
end

fruit = Fruit.new("Apple", 2);
fruit.printInfo();

  可以看出上类的定义中,其方式与其他高级语言类似,都是在类的定义中增加对方法和变量的定义。都有一个特殊的方法来支持定义对象时的初始化,Ruby为initialize,与其他语言所不同的是定界符及定义方法的关键字和变量类申明。
  使用 @将bia

2、类的继承:
咱们再来定义一个类:
class Apple < Fruit
 def initialize(name, weight, color)
  super(name, weight);
  @color = color;
 end
end

fruit = Apple.new("Apple", 2, "Red");
fruit.printInfo();

Ruby类继承关键字使用“<”,其含义与java“extends”一致,对父类构造方法的使用及重载父类方法的方式也一致。

3、属性的读取
  A、为每个属性写一个方法,类似于Java的getXXX()方法
  B、快捷定义读取属性的方法 attr_reader :name, :color将会属性name定义读取方法,与这面代码等效:
def name
   @name
end

def color
  @color
end

4、属性的赋值:
  ruby中使用定义对象赋值方法的方式进行赋值,如:
def duration= (new_duration)(new_duration)
  @duration = new_duration
end
其中duration后必须尽更着=号,否则会报语法错误。与读取属性值类似,Ruby提供了快捷的定义属性赋值的方法:
attr_writer :duration

5、类变量和类方法:
A、类变量(以@@开始的变量)含义与java的类静态变量一致,属于被类的所有对象共享的对象。它必须在使用前初始化,且它是私有的。
B、类方法(def ClassName.MethodName)含义与java静态方法一直,不需要定义对象即可使用。
可参见如下程序:
class DealClassV
 @@MAX_NUM = 100;
 
 def DealClassV.isTooLarge(number)
  if(number > @@MAX_NUM)
   print(number, " is larger than ", @@MAX_NUM, "/n");
  else
   print(number, " is smaller than ", @@MAX_NUM, "/n");
  end
 end
 
 def add(nubmer)
  @@MAX_NUM += nubmer;
  print("Now MAX_NUM is: ", @@MAX_NUM, "/n");
 end
end

DealClassV.isTooLarge(2);
DealClassV.isTooLarge(122);

obj = DealClassV.new();
obj.add(100);

obj = DealClassV.new();
obj.add(200);

提供一个单例模式的实现,使用类变量
class MyLogger
 private_class_method :new
 
 @@logger = nil;
 
 def MyLogger.create
  @@logger = new unless @@logger
  @@logger
 end
end
#(Programming Ruby - 2nd)

看一个比较有意思的例子:
先定义一个Shape类,传入边 的数目和周长
class Shape
  def initialize(num_sides, perimeter)
    # ...
  end
end
后需要改变定义方式,支持三角形和正方形:
class Shape
  def Shape.triangle(side_length)
    Shape.new(3, side_length*3)
  end
  def Shape.square(side_length)
    Shape.new(4, side_length*4)
  end
end
#(Programming Ruby - 2nd)
它是在原来的基础上增加了两个类方法实现的

6、权限
protected、private、public(默认)

7、Variables
可通过dup复制对象,生成新对象,类似于Java的clone:
var1 = "var";
var2 = var1.dup:   #复制var1引用指向的对象值,生成新对象,var2引用指向新对象
可通过var1.freeze;冻结对象,类似于java的final

天猫精灵设备拆机及系统分析 我手头的这个天猫精灵型号为TG_X1,黑色天猫精灵AI助手,拆解没有多少难度,但需要注意连接线的问题。具体的拆机过程可以参见:http://www.geekifix.com/wp/archives/415.html注意一点就是,天猫精灵的主板的位置,位于音频按键的底部,也就是顶端,而拆解是从电源的位置从低到顶进行拆机;拆机后,看到主控板的信息如下:主控型号:联发科 MT8516MT8516支持四核... 阅读详情

相关推荐

PIC单片机应用开发实践教程(二): 新建工程

File---New ProjectMicrochip Embedded --- Standalone Project 选择所用MCU对应型号 点击 Finish 后,工程就建好了 至止,我们的一个新工程就建完成了!

qq_57798018的博客 2893

如何访问ruby类的变量

在类声明时,不用定义getter和setter,这个和java不一样   现在知道有两种方法:     1. 用实例变量     class Test def initialize() @name ="yanzilee9292" end end puts Test.new.instance_eval { @name }   2. 用attr_asse...

素年小事 474

iphone查看/private/var/mobile/Containers/Data/Application/文件

xcode查看iPhone的private/var/文件夹xcode连接iPhone真机选择app下载Containers文件夹到mac电脑中查看手机中下载的文件 使用xcode真机调试的时候,文件目录都是这种/private/var/mobile/Containers/Data/Application/FAEFDF4D-5CE4-474F-9C53-C19789DB59F6/tmp/ xcode连接iPhone真机 不需要越狱,使用xcode上连接iPhone,然后选择运行的app,选择window-&g

小手琴师的博客 101万+

ruby中的实例变量和类变量

  为了解决老贾提出的,弄清楚为何继承的子类继承了类变量而没有继承实例变量的原因,需要弄清楚实例变量和类变量的存取方式。下面是我简单的一些分析,希望大家多多斧正。    类和对象的存储方式对象的结构在mateclass的讲解中有了简单的介绍,下面是对象的结构体的示意图1-1:  图1

puts "hello saint!" 3231

SAP物料主数据表结构全解析:ABAP开发与MM模块必知必会

本文深入解析SAP物料主数据的核心表结构,涵盖MARA、MAKT、MARC、MARD及MVKE等关键表。详细阐述了物料主数据在ABAP开发和MM模块中的存储逻辑与关联关系,帮助开发者和顾问高效处理数据查询、增强功能及业务故障排查,是掌握SAP物料管理基础的必读指南。

weixin_29216957的博客 383

KIBANA可视化管理界面说明

更说明转自https://blog.csdn.net/IT_ZRS/article/details/125496588 1 主要结构功能 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 主要进行搜索和查询 Visualize:统计视图 构建可视化的图表 Dashboard:仪表视图 将构建的图表组合形成图表盘 Timelion:时间轴视图 随着时间流逝的数据 APM:性能管理视图 应用程序的性能管理系统 Canvas:大屏展示

tian830937的专栏 7086

shape属性详解

shape的用法广泛,属性较多,有时候容易忘记,统计一下: &lt;shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"&gt; &lt;/shape&gt; shape值有:rectangle(四边形),oval...

qq_36487432的博客 2457

8.30华为OD机试真题 新系统 - 单词搜索计数 (Java/Py/C/C++/Js/Go)

8.30华为OD机试真题 新系统 - 单词搜索计数 (Java/Py/C/C++/Js/Go)

算法大师! 603

Ruby中的类变量与类方法

首先,我们通过一个实例来观察类变量与类方法: classSquaredefinitialize@@number_of_squares=define?(@@number_of_squares)?@@number_of_squares+1:1enddefself.test_methodputs"Hello...

weixin_33951761的博客 157

机器学习实战5-天气预测系列:利用数据集可视化分析数据,并预测某个城市的天气情况

大家好,我是微学AI,最近天气真的是多变啊,忽冷忽热,今天再次给大家带来天气的话题,机器学习实战5-天气预测系列,我们将探讨一个城市的气象数据集,并利用机器学习来预测该城市的天气状况。该数据集包含年平均温度和湿度等信息。

微学AI的博客 1万+

YOLOv11改进 | 注意力篇 | YOLOv11引入24年最新的ELA注意力机制,并构建C2PSA_ELA

为了解决这些限制,本文介绍了一种高效的本地注意力(ELA)方法,实现了一个简单的结构,大幅度的性能改善。我们精心设计了ELA中的三个超参数,产生了四个不同的版本:ELA-T,ELAB,ELA-S和ELA-L,以满足不同视觉任务的具体要求,如图像分类,目标检测和语义分割。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 1287

ruby中的类变量与类实例变量

ruby中的类变量与类实例变量 博客分类: ruby Ruby 首先,在ruby1.8中类变量是所有子类和父类共享的,可以看下面的代码: Ruby代码 class IntelligentLife      @@home_planet = nil        def self.home_planet      @@home_planet    end

emerald0106的专栏 659

GPU服务器维修全流程:从检测到解锁

《GPU服务器维修维保全流程指南》摘要:本文系统介绍GPU服务器从检测到解锁的完整维修流程。检测环节包含物理检查(氧化层、散热、PCB板)和电子诊断(ECC报错率、电源波动等);核心维修技术涵盖PCB板修复(微孔镀铜、BGA返修)和芯片级维修(成功率78-92%);解锁验证阶段包括性能解锁(VBIOS重写)和72小时稳定性测试。文末提供故障速查表及维保建议,强调定期除尘可降低38%故障率,推荐环境粉尘浓度控制在≤0.3mg/m³。

2401_89353317的博客 891

Ruby 学习三 (类、对象和变量一 类的定义和实例化)

    Ruby号称是一门面向对象的语言,对象势必是首当其冲的应该提到的,这一篇我们就来学习学习类,对象和变量,说明一下,我自己也是边摸索边学,之前也没有接触过一门类似的语言,这在开篇就提到了,我是结合网络资源和《Programming Ruby 2nd》学习的,至于写这些文字,也只是为了加深印象,也是为了“鞭笞”自己继续的学习下去,不然哪天找个借口就。。。题外话:)。    我们先来看下类的

Here I am 2900

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Ruby 学习四 (类、对象和变量二 类的继承和属性)

     继续学习,主要学习下面几点:          1:继承     2:属性      在面向对象的世界里,总少不了继承的概念,在上次提到的例子里,我们重写了to_s的属性,既然涉及到重写就说明这个to_s本身就存在这个消息,其实我们新建的任何一个类,如果我们没有明确指定他继承于谁,那么他默认是继承自Object类。在Ruby中Ruby和多数面向对象语言,是只支持继承一个类

Here I am 1781

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

207 Ruby 中的对象、变量和常量【Rails后端开发训练营】

本讲我们学习 Ruby 中的对象、变量和常量。 1 对象 在 Ruby 中,对象(object)是一个抽象的概念,它是一个类的实例。 对象的类型非常多,我们介绍一些常用的对象。 数值对象: 1 、-10 、3.1415 都是数字的对象,另外还有表示矩阵、复数、质数、公式的对象。 字符串对象: “你好” 、“hello” 等表示字符序列的对象。 数组对象、哈希对象:表示多个数据的集合的对象。 正则表达式对象:表示一个正则表达式的对象。 时间对象: 比如 “2021 年 1 月 31 日早上 9 点” 等表示

Ruby Tips 762

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Ruby原理剖析-- 对象与类的内部数据结构

《Ruby原理剖析》的学习笔记  下图为Ruby对象,类,及元类的数据结构关系。 Ruby对象的定义:每个Ruby对象都是类指针和实例变量数组的组合。 Ruby类的定义    :Ruby类是包含方法定义,属性名称,超类指针,常量表的Ruby对象。 RObject:Ruby对象的C结构体 flags:一组布尔值,用来存储各种内部专用的值 klass:类指针 numiv:纪录了包含在

hsb583660496的博客 1230

Ruby 简明教程 Part 1

1.简介 2.安装 3.基本语法 4高级进阶 1.简介 Ruby是一个面向对象的脚本语言,由Yukihiro Matsumoto设计。它可以运行于各种平台,Windows,Mac OS, 及各种Linux/Unix。 Ruby特点: 开源,授权 通用解释性语言 面向对象 服务器端的脚本语言,和Python, Perl类似 可以来写CGI(common gateway i...

dragonzhsd的博客 592

学ruby有感(by 王瀚)

    学了一个学期的C语言,看了一个星期的ruby,我才发现为什么老师说C是最基础的,假如没有一个学期的C基础,那ruby我也不用看了。        Ruby和C语言有许多的相同点和不同点,在学习ruby时,有时可以用C里面的思维来理解,就像ruby里面的方法其实就跟C的函数如出一辙;ruby比C使用时随意的多,在C里声明变量还要求变量类型,而ruby却不用特意去声明类型,直接用就好;而对

Swift官方博客 1110

Ruby学习笔记(2) - 类和变量

类的定义: class Song<br /> def initialize(name, artist, duration)<br /> @name = name<br /> @artist = artist<br /> @duration = duration<br /> end<br /> end<br /> 类里面的initialize函数和C++里面的constructor的作用是一样的,当一个对象在new之后,就会调用initia

airekans的专栏 634

1. Ruby基础知识

1. Ruby执行选项 符号 作用 -c 检查代码正确性 -w 警告模式运行 -e 字面脚本 -l 行模式运行 单独ruby -c Hello.rb组合ruby -le 'print "Hello";print "Ruby"'2. 常量,变量2.1 常量通常以首字母大写或全部大写为常量。CON1=1000 puts "I got"+CON1.to_s+"RMBy

Philippian的博客 2034

Ruby入门学习之二

    ~_~学习Ruby第二天,主要还是基础知识学习。诸如对象、变量、常量、条件、循环、方法、类、模块等的基本表示。 puts("---------------实例方法-----------") p "10,20,30,40".split(",") p [1,2,3,4].index(2) p 1000.integer? p /Ruby/ =~ "dsdRuby" name = ["...

mynaao7i 163

ruby学习之初探类、方法

前看了一些基本的操作,比如字符串、数组,但这些只是一些最最基础的,如果写的太久了就会无味,从而失去

~Hello,Wicky // 922

笨办法学python3 pdf 脚本之家_笨办法学Ruby-(第3版) pdf[1.4MB]

笨办法学Ruby-(第3版)是一本Ruby入门书籍,是《“笨办法”学Python》的姊妹篇。本书适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,体验到软件开发的基本过程。本书结构非常简单,共包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个覆盖了一...

weixin_39928233的博客 246

ruby-程序员最好的朋友

ruby一门开源的动态编程语言,注重简洁和效率。Ruby 的句法优雅,读起来自然,写起来舒适。 介绍 这是个不会超过20分钟的 Ruby 简介。阅读前请您先将 Ruby 安装好。(如果您还没有安装Ruby 的话请到下载区下载并安装。) Ruby 的互动性 打开 IRB 如果您使用Mac OS X打开Terminal然后输入irb,回车 如果您使用Linux,打开一...

weixin_30565199的博客 134
上一篇: Ruby学习之路-简单语法摘要一二
下一篇: 常量定义方式说明
rootless
博客等级 码龄20年 7粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值