1.在ruby中的定义class,ruby中定义类也是以关键字class开头

  后面带着类名,类名以大写开头。一个类的结束以关键字end

  结束。如:

  class Customer

  end

2.ruby类中的变量,ruby提供四种类型的变量

  1>局部变量

    局部变量一般的被定义在方法中,方法外不可见。局部变量

    一般以小写字母或者_.开头。

  2>实例变量

    实例变量能被特殊的实例或者对象的可访问的方法访问。这就

    意味着实例变量被对象而改变。实例变量通常在变量名前加上

    (@)符号。

  3>类变量

    类变量可以被其他类访问。类变量属于类,在类的不同的实例中

    都可以访问,是类特有的。通常在变量名前加上(@@)符号。

  4>全局变量

    类变量不能在其他类中访问,如果你需要这样的变量,这样的变量

    可以跨类访问。全局变量通常在变量名前加上($)符号。

3.ruby创建对象,使用new方法

  class Customer

    @@no_of_customers = 1

  end

  

  cuts1 = Customer. new

  cuts2 = Customer. new

  默认的情况下,不用显示的定义初始化方法,在java中,就是构造方法,

  ruby也是有个默认的无参默认初始化方法。

  如下:

  class Customer

    @@no_of_customers = 1

    def initilize(id, name, addr)

      @cust_id = id

      @cust_name = name

  @cust_addr = addr

    end

  end

  可以使用带参数的初始化参数来创建对象的实例,如下:

  cust1 = Customer. new("1", "john", "shenzhen")

  cust2 = Customer. new("2", "tom", "shenzhen")

4.ruby类的方法成员

  class Sample

    def function

      statement 2

      statement 3

    end

  end

  如:

  class Sample

    def hello

      puts "hello ruby!"

    end

  end

  #使用对象,调用对象

  object = Sample.new

  object.hello

  #输出

  hello ruby!

5.我们来创建包含全局变量,实例变量,和方法

  class Customer

    @@no_of_customers = 0

    def initilize (id, name , addr)

       @cust_id = id

       @cust_name = name

       @cust_addr = addr

    end

    def display_details ()

      puts "Customer id #@cust_id"

      puts "Customer name #@cust_name"

      puts "Customer address #@cust_addr"

    end

    def total_no_of_customers ()

      @@no_of_customers += 1

      puts "Total number of customers : #@@no_of_customers"

    end

  end

  #Create Objects

  cust1 = Customer.new("1" , "john" , "hubei" )

  cust2 = Customer.new("2" , "tom" , "shenzhen")

  #Call Methods

  cust1.dispaly_details()

  cust1.total_no_of_customers()

  cust2.desplay_details()

  cust2.total_no_of_customers()

  

  

2.ruby基本语法,类的定义的更多相关文章

  1. Ruby学习: 类的定义和实例变量

    ruby是完全面向对象的,所有的数据都是对象,没有独立在类外的方法,所有的方法都在类中定义的. 一.类的定义语法 类的定义以 class 关键字开头,后面跟类名,以 end标识符结尾. 类中的方法以 ...

  2. [ruby on rails] 深入(2) ruby基本语法

    1. 调试&注释&打印输出 1.1 调试 ruby属于解释型语言,即脚本,在linux上,脚本的执行无非三种: 1. 用解释器运行脚本 解释器 脚本文件 即:ruby  脚本文件 2. ...

  3. JavaScript 类的定义和引用 JavaScript高级培训 自定义对象

    在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等.     一,概述 在Java语言中 ...

  4. Java入门(2) —— 变量详解、运算符、定义类和定义方法以及方法的调用

    1.变量 1.定义变量 1.声明的同时直接赋值 数据类型 变量名 = 值; 2.先声明,后赋值 声明: 数据类型 变量名; 赋值: 变量名 = 值; 2.数据类型 基本数据类型:4类8种 整数 --- ...

  5. C++学习4-面向对象编程基础(面向对象概念,定义类,定义对象)

    什么是面向对象? 在软件的设计过程中的两种方式: 把程序按照算法的执行步骤来拆解,一步步实现,这是面向过程编程: 把程序按照现实世界的理解,分成不同对象,通过多个对象之间的相互作用,来完成程序的最终功 ...

  6. Ruby中的类

    初识ruby中的类 只需要简单的两行 class Point end 如果我们此时实例化一个类那么他会有一些自省(introspection)的方法 p = Point.new p.methodes( ...

  7. C++基础学习8:类的定义(class)

    先来说说C和C++中结构体的不同 a) C语言中的结构体不能为空,否则会报错(??) b) C语言中内存为空结构体分配大小为0,C++中为结构体和类分配大小为1byte c) C语言中的结构体只涉及到 ...

  8. .NET高级特性-Emit(2)类的定义

    在上一篇博文发了一天左右的时间,就收到了博客园许多读者的评论和推荐,非常感谢,我也会及时回复读者的评论.之后我也将继续撰写博文,梳理相关.NET的知识,希望.NET的圈子能越来越大,开发者能了解/深入 ...

  9. ES6 class类中定义私有变量

    ES6 class类中定义私有变量 class类的不足 看起来, es6 中 class 的出现拉近了 JS 和传统 OOP 语言的距离.但是,它仅仅是一个语法糖罢了,不能实现传统 OOP 语言一样的 ...

  10. php类的定义与实例化方法

    php类的定义 类是对某个对象的定义.它包含有关对象动作方式的信息,包括它的名称.方法.属性和事件.实际上它本身并不是对象,因为它不存在于内存中.当引用类的代码运行时,类的一个新的实例,即对象,就在内 ...

随机推荐

  1. div+css 布局经验 - 最简单的 = 最不变形的(原创技巧)

    站酷几年了 一直饱受其恩泽 尤为感激 一直想奉献些什么 但是苦于水平 苦于奔波 今天静下心来 为大家奉献下 自己的div+css 经验 ,以下观点只代表 深海个人立场 希望为初学者提供一条" ...

  2. HDU 4003 Find Metal Mineral (树形DP,经典)

    题意:给定一棵树图,n个节点,有边权,要派k<11个机器人从节点s出发,遍历所有的点,每当1只机器人经过1条边时就会花费该边的边权,边是可重复走的.问遍历完所有点的最小花费? 思路: 非常经典, ...

  3. 洛谷 P1376 机器工厂

    题目描述 小T开办了一家机器工厂,在N(N<=10000)个星期内,原材料成本和劳动力价格不断起伏,第i周生产一台机器需要花费Ci(1<=Ci<=5000)元.若没把机器卖出去,每保 ...

  4. spring 中bean学习笔记

    spring 中bean 一.bean的定义和应用 1. bean 形象上类似于getXX()和setXX()的一种. 2. 由于java是面向对象的,类的方法和属性在使用中需要实例化. 3. 规律: ...

  5. Python基础篇 -- 运算符和编码

    运算符 记熟 ! ! ! 2**1=2 2**2=4 2**3=8 2**4=16 2**5=32 2**6=64 2**7=128 2**8=256 2**9=512 2**10=1024 运算符 ...

  6. uaf-湖湘杯2016game_学习

    0x00 分析程序 根据分析,我们可以得到以下重要数据结构 0x01 发现漏洞 1.在武器使用次数耗光后,程序会把存储该武器的堆块free,在free的时候没有清空指针,造成悬挂指针 2.commen ...

  7. ios 点餐系统

    这个程序的主要界面就是一个TabBarController.总共三个标签,第一个是所有的可点的菜,第二个是已点的菜,第三个是可以留言或者查看所有留言. 下面是第一个页面: 右上角的i按钮是添加新菜,每 ...

  8. Promise中的next 另一个用法

    const chainAsync = fns => { let curr = 0 ; const next = (...args) => fns[curr++](next,...args) ...

  9. awk纯干货

    AWK的惊人表现: Awk设计的目的:简化一般文本处理的工作. 属于POSIX的一部分. AWK命令行: Awk的调用可以定义变量.提供程序并且指定输入文件: Awk [ -F fs ]  [ -v ...

  10. 【Java_多线程并发编程】基础篇—线程状态及实现多线程的两种方式

    1.Java多线程的概念 同一时间段内,位于同一处理器上多个已开启但未执行完毕的线程叫做多线程.他们通过轮寻获得CPU处理时间,从而在宏观上构成一种同时在执行的假象,实质上在任意时刻只有一个线程获得C ...