public方法,可以被定义它的类和其子类访问,可以被类和子类的实例对象调用;
protected方法,可以被定义它的类和其子类访问,不能被类和子类的实例对象直接调用,但是可以在类和子类中指定给实例对象;
private方法,可以被定义它的类和其子类访问,私有方法不能指定对象。
示例:
1、实例对象不能访问protected,private方法,但是本类之间的方法可以调用protected,private方法
class Person
def talk
puts "public :talk"
speak
end
protected
def speak
puts "speak"
laugh
end
private
def laugh
puts "private laugh"
end
end
p1 = Person.new
p1.talk
#p1.speak 实例对象不能访问protected方法
#p1.laugh 实例对象不能访问private方法
2、protected,private方法可以在子类的方法被调用
class Person
protected
def speak
"protected:speak "
end
private
def laugh
" private:laugh"
end
end
class Student < Person
def useLaugh
puts laugh
end
def useSpeak
puts speak
end
end
p2=Student.new
p2. useLaugh # private:laugh
p2. useSpeak # protected:speak
3、私有方法不能指定对象
class Person
protected
def speak
"protected:speak "
end
private
def laugh
"private:laugh"
end
def useLaugh(another)
puts another.laugh #这里错误,私有方法不能指定对象
end
def useSpeak(another)
puts another.speak
end
end
p1=Person.new
p2=Person.new
p2.useSpeak(p1) # protected:speak
#p2.useLaugh(p1)
分享到:
相关推荐
重点关注private与protected public 默认即为public,全局都可以访问,这个不解释 private C++, “private” 意为 “private to this class”, 但是Ruby中意为 “private to this instance”. 意思是:C++中,对于类...
Ruby作为一种动态类型的面向对象语言,提供了`public`、`protected`和`private`三种访问控制级别,分别对应不同的可见性和使用场景。本文将重点讨论`private`和`protected`两种访问控制修饰符,并通过示例代码来深入...
Private private 函数只能 在本类和子类的 上下文中调用,且只能通过self访问。 这个意思就是:private函数,只能在本对象内部访问到。 对象实例变量(@)的访问权限就是 private。 代码如下: class AccessTest def ...
如果在一个类中定义了多个方法,然后使用`private`,那么从`private`之后的所有方法都会变成私有,直到遇到另一个访问修饰符(如`public`或`protected`)为止。 私有方法在Ruby中的应用广泛,例如在封装对象的状态...
类有继承、模块(module)的引入以实现多重继承的效果,以及访问控制符(public、private、protected)。 6. **异常处理**:Ruby提供了try-catch机制,通过`begin-rescue-end`来处理程序运行时可能出现的错误。 7....
- **访问控制**: Ruby提供了public、private和protected等关键字来控制成员的可见性。 - **变量类型**: 包括局部变量、实例变量、类变量和全局变量。 #### 六、容器、块与迭代器 - **容器**: 包括数组和哈希等数据...
- **访问控制**:Ruby支持三种不同级别的访问控制:公共(`public`)、受保护(`protected`)和私有(`private`)。 ##### 4. 单例方法 - **定义**:单例方法是在特定对象实例上定义的方法,而不是在类级别定义的...
7.2方法可见性:PUBLIC、PROTECTED、PRIVATE232 7.3子类化和继承234 7.4对象创建和初始化241 7.5模块247 7.6加载和请求模块252 7.7单键方法和EIGENCLASS257 7.8方法查找258 7.9常量查找261 第8章...
- **访问控制**: 如何在Ruby中使用public、protected和private关键字来控制类成员的访问权限。 - **变量**: 包括实例变量、类变量、全局变量等不同类型的变量。 ##### 3. 容器、块和迭代器 - **容器(Container)**: ...
- **封装**:通过访问控制修饰符(public、protected、private)来保护内部状态。 - **模块与混入**:模块用于封装一组相关的类和方法,可以被其他类通过混入的方式使用。 #### 四、常用库与框架 - **标准库**:...
- 封装:Ruby中可以通过访问控制符(public、private、protected)来管理对象内部数据的可见性。 3. **模块(Module)** - 模块是用来封装代码的机制,可以包含常量、方法和类定义,通过`include`或`extend`...
- 封装:通过访问控制符(public, private, protected)实现数据封装,保护内部状态不被外部直接修改。 - 多态:不同类的对象可以响应相同的消息,实现代码的复用和扩展。 2. **基本语法** - 变量:Ruby有局部...
- **访问控制**:虽然Ruby默认不强制访问控制,但可以通过`public`、`protected`、`private`等关键字实现对方法和变量的访问控制。 **5. 模块(Module)** 模块是Ruby中的另一个重要概念,主要用于组织代码和提供...
方法的访问性Ruby提供了三种方法访问性:public、private和protected。 - `public`:默认的访问级别,可以在任何地方调用。 - `private`:私有方法,只能在类内部调用,不能通过对象实例直接调用。 - `protected`:...