Ruby类的创建与使用

Ruby是一种面向对象编程语言,这意味着它操纵的编程结构称为"对象"

先上代码, 了解类的定义与使用方式

class Computer
  $manufacturer = "Mango Computer, Inc."
  @@files = {hello: "Hello, world!"}

  def initialize(username, password)
    @username = username
    @password = password
  end

  def current_user
    @username
  end

  def self.display_files
    @@files
  end
end

# Make a new Computer instance:
hal = Computer.new("Dave", 12345)

puts "Current user: #{hal.current_user}"
# @username belongs to the hal instance.

puts "Manufacturer: #{$manufacturer}"
# $manufacturer is global! We can get it directly.

puts "Files: #{Computer.display_files}"
# @@files belongs to the Computer class.
---------------------------------------------------------------------
输出:
Current user: Dave
Manufacturer: Mango Computer, Inc.
Files: {:hello=>"Hello, world!"}
nil

类的定义

class Computer
  #class magic here
end

根据Ruby命名约定, 类的名称第一个字母要大写,之后每个单词的首字母大写, 两个单词之间不再用下划线_分隔

class Computer
    def initialize

    end
end

观察上面类的定义, 类中出现了initialize这个方法, 这个方法用来初始化类的对象,如果没用这个方法,对象就无法生成对象。(对应于c++/java的构造函数)

class Computer
  $manufacturer = "Mango Computer, Inc."
  @@files = {hello: "Hello, world!"}

  def initialize(username, password)
    @username = username
    @password = password
  end
end

在Ruby的世界里, 我们用在一个变量名前加上@表示这个变量是一个实例变量,这意味着这个变量只能被类的实例所访问。

局部变量只作用于某个具体的方法中。

变量名前有两个@, 即@@的变量,叫做类变量,它并不属于类的实例,而是属于类自身(类似C++中的static变量)。

全局变量有两种定义方式, 一种是定义在所有类和方法之外。如果你想把全局变量放入类中, 那么采用另一种定义方式,在变量名之间加上$。

时间: 2024-11-03 21:14:48

Ruby类的创建与使用的相关文章

Ruby 类的创建

class Language  def initialize(name, creator) @name = name @creator = creator end def description puts "I'm #{@name} and I was created by #{@creator}!" endend ruby = Language.new("Ruby", "Yukihiro Matsumoto")python = Language

【Ruby】Ruby 类案例

下面将创建一个名为 Customer 的 Ruby 类,声明两个方法: display_details:该方法用于显示客户的详细信息. total_no_of_customers:该方法用于显示在系统中创建的客户总数量. 实例 #!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end def di

雷林鹏分享:Ruby 类案例

Ruby 类案例 下面将创建一个名为 Customer 的 Ruby 类,您将声明两个方法: display_details:该方法用于显示客户的详细信息. total_no_of_customers:该方法用于显示在系统中创建的客户总数量. #!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr en

雷林鹏分享:Ruby 类和对象

Ruby 类和对象 Ruby 是一种完美的面向对象编程语言.面向对象编程语言的特性包括: 数据封装 数据抽象 多态性 继承 这些特性将在 面向对象的 Ruby 中进行讨论. 一个面向对象的程序,涉及到的类和对象.类是个别对象创建的蓝图.在面向对象的术语中,您的自行车是自行车类的一个实例. 以车辆为例,它包括车轮(wheels).马力(horsepower).燃油或燃气罐容量(fuel or gas tank capacity).这些属性形成了车辆(Vehicle)类的数据成员.借助这些属性您能把

C#类的创建与初始化

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace C_编辑基础 { class Person { public string Name; //因为Name没有赋值,而它是string类型的,所以它的默认值就是Null public int Age; //因为Age和Gender也没有赋值,而它两是int类型的,所以他们两个的默认值为0 public int

php简单实用的操作文件工具类(创建、移动、复制、删除)

php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $file) )

【python】-- 类的创建、__new__、__metaclass___

类的创建 前面的随笔都是关于类的知识,通过类创建对象,那这个类到底是怎么产生的呢? 1. 传统创建类 class Foo(object): def __init__(self,name): self.name = name f = Foo("shuaigaogao") f 是通过 Foo 类实例化的对象,其实,不仅 f 是一个对象,Foo类本身也是一个对象,因为在Python中一切事物都是对象,按照一切事物都是对象的理论:obj对象是通过执行Foo类的构造方法创建,那么Foo类对象应该

工具类MyBatisUtils创建SqlSessionFactory

package com.js.ai.modules.pointwall.interfac; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder

4.win32注册窗口类和创建窗口

1.注册窗口类函数 (1)RegisterClass/RegisterClassEx ATOM RegisterClass(CONST WNDCLASS *lpWndClass); ATOM RegisterClassEx(CONST WNDCLASSEX *lpwcx); 注册成功后,返回一个非0数字标识,失败返回0. (2)窗口类的风格 CS_GLOBALCLASS - 应用程序全局窗口类 CS_BYTEALIGNCLIENT - 窗口客户区的水平位置8整倍数据对齐 CS_BYTEALIGN