- 浏览: 148192 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (110)
- CoreJava (18)
- 待解决 (1)
- 数据结构 (3)
- 科普 (2)
- 网站 (1)
- DataBase (8)
- Access (1)
- Asp (1)
- JSP (1)
- 操作系统 (8)
- Tech (1)
- Linux (11)
- Career (5)
- MongoDB (1)
- Embedded (1)
- JavaScript (1)
- UltraIso (1)
- Linux命令 (1)
- DesignPattern (1)
- Ruby (13)
- Vim (1)
- 自考 (2)
- Github (5)
- zrProject (1)
- Emacs (4)
- Math (3)
- Ajax (1)
- 没看懂 (1)
- HTML (1)
- Philosophy (1)
- 软件 (1)
- 面试 (1)
- 考试报名 (3)
- Regex (1)
- 日语 (1)
- 生活 (1)
最新评论
重点关注private与protected
public
默认即为public,全局都可以访问,这个不解释
private
C++, “private” 意为 “private to this class”, 但是Ruby中意为 “private to this instance”.
意思是:C++中,对于类A,只要能访问类A,就能访问A的对象的private方法。
Ruby中,却不行:你只能在你本对象的实例中访问本对象的private方法。
因为Ruby的原则是“private意为你不能指定方法接收者”,接收者只能是self,且self必须省略!
所以Ruby中子类可以访问父类的private方法。但self.private_method是错的。
protected
可以在本类或子类中访问,不能在其它类中访问。
测试代码(public均可访问,代码略)
class A def test protected_mth private_mth self.protected_mth #self.private_mth #wrong obj = B.new obj.protected_mth #obj.private_mth #wrong end protected def protected_mth puts "#{self.class}-protected" end private def private_mth puts "#{self.class}-private" end end class B < A def test protected_mth private_mth self.protected_mth #self.private_mth #wrong obj = B.new obj.protected_mth #obj.private_mth #wrong end end class C def test a = A.new #a.protected_mth #wrong #a.private_mth #wrong end end A.new.test B.new.test C.new.test
注:ruby的访问控制不同于java,没有包的区别。
其它包中的类只要引用目标类,和目标类同包下类访问控制规则相同。
参考:http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Classes#Declaring_Visibility
发表评论
-
使用Net::SSH和Net::SCP编写Linux服务器管理脚本
2012-06-14 19:20 2412原文:http://rubyer.me/blog/113 ... -
ruby-mp3info,纯Ruby修改mp3标签
2012-06-14 19:16 902原文:http://rubyer.me/blog/747 ... -
Ruby Closure
2012-06-14 19:13 785Closure - programming language ... -
Ruby/Rails 生態圈 Ecosystem
2012-06-13 21:59 844http://ihower.tw/rails3/eco ... -
提高rails new时bundle install运行速度
2012-05-05 20:24 0http://rubyer.me/blog/941/ ... -
mysql配置
2012-03-20 22:36 874http://wiisola.iteye.com/blo ... -
Gem 淘宝mirror地址
2012-03-19 12:47 897https://ruby.taobao.org -
搭建 Nginx 反向代理,提高 Gem 的安装速度
2012-03-19 12:43 789最近时常遇到 Gem 安装东西的时候安装失败或异常缓慢, ... -
细说Ruby工程的Bundle以及如何加快bundle install
2012-03-19 12:33 722做过Ruby项目的人可能有过我一样的感受,rubygem ... -
Gems淘宝镜像
2012-03-04 23:09 0Shell代码 $ ... -
学习笔记
2012-03-04 11:55 554Command LIne Switches: -
Ruby待解决
2012-02-21 21:47 6071.inject 2.|x|这种用法 -
Tutor
2012-02-19 16:14 503http://www.fincher.org/tips/Lan ... -
Tutorial
2012-02-19 12:46 674Variable naming Ok, let's slo ...
相关推荐
publicsuffix-ruby, 在 public 后缀列表中,基于 ruby的域名解析器 用于 ruby的public 后缀PublicSuffix是一个基于 public 后缀列表的ruby 域 NAME 解析器。 要求ruby> = 2.1对于较老版本的ruby,使用以前的版本。...
C++, “private” 意为 “private to this class”, 但是Ruby中意为 “private to this instance”. 意思是:C++中,对于类A,只要能访问类A,就能访问A的对象的private方法。 Ruby中,却不行:你只能在你本对象的...
Ruby作为一种动态类型的面向对象语言,提供了`public`、`protected`和`private`三种访问控制级别,分别对应不同的可见性和使用场景。本文将重点讨论`private`和`protected`两种访问控制修饰符,并通过示例代码来深入...
标题中的“Ruby-PublicActivity简单的活动跟踪模型类似于Github的公共活动”揭示了我们要讨论的核心技术——PublicActivity。PublicActivity是Ruby编程语言中的一个开源库,它允许开发者轻松地在应用程序中实现活动...
Ruby Ruby Ruby Ruby Ruby Ruby
PublicSuffix是基于的Ruby域名解析器。 链接 要求 PublicSuffix需要Ruby> = 2.3 。 对于较旧版本的Ruby,请使用早期版本。 安装 您可以手动安装gem: gem install public_suffix 或使用Bundler并将其定义为Gemfile...
ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...
Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...
在Ruby编程语言中,私有方法(private methods)是一种特殊的方法,它们不能通过对象实例直接调用,只能在类或模块内部被其他方法间接调用。这种设计有助于防止意外的外部访问,保护对象的内部状态。以下是Ruby定义...
《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby
Ruby是一种强大的、面向对象的脚本语言,广泛用于Web开发、服务器端编程和各种应用程序。在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求...
src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...
ruby源代码 ruby源代码 ruby源代码 ruby源代码2
private_class_method :new end DaysOfWeek.each do |day| puts day end ``` 在这里,`values` 是Ruby类的实例方法,返回类的所有常量。通过`each` 方法,我们可以轻松地遍历枚举的所有值。 面向对象的枚举还...
ruby源代码 ruby源代码 ruby源代码 ruby源代码4
使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库...