【Ruby】Ruby和Java比较——方法访问权限
来源:互联网 发布:淘宝招聘模特 编辑:程序博客网 时间:2024/06/07 20:06
最近开始接触Ruby,发现语法很有特点,而大家都喜欢拿Java和Ruby进行比较,本文着重对类的方法访问权限进行介绍。
Ruby官方网给出了Ruby和Java的相似点和相异点:
英文:https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-java/
中文:https://www.ruby-lang.org/zh_cn/documentation/ruby-from-other-languages/to-ruby-from-java/
可以看出,Ruby的类和Java一样,都有public、private和protected这三种方法,而如果不指定访问权限,会有默认的访问权限default,下表分别对这些访问权限进行了详细的介绍。
首先,对于public方法,Ruby和Java没有太大的区别。
然后,对于protected方法,通过下面的例子我们可以进行比较:
package package1;public class Parent {protected void method() {}public void test() {method(); //本类内部访问}}class Child extends Parent {public void test() {method(); //子类访问}}class Test1 {public void test() {new Parent().method(); //相同包内的类内部可以访问}}package package2;import package1.Parent;public class Test2 {public void test() {new Parent().method(); //错误!不同包内的类无法访问}}
class Parent protected def method end public def test method #本类实例访问 Parent.new.method #本类其它实例访问 endendclass Child protected def method end public def test method #子类实例访问 endendclass Test def test Parent.new.method #错误!不同类无法访问 endend
而对于private方法,通过下面的例子我们可以进行比较:
package package1;public class Parent {private void method() {}public void test() {method(); //本类内部访问}}class Child extends Parent {public void test() {method(); //错误!子类无法访问}}class Test1 {public void test() {new Parent().method(); //错误!相同包内的类内部无法访问}}
class Parent private def method end public def test method #本类实例访问 Parent.new.method #错误!本类其它实例无法访问 endendclass Child private def method end public def test method #子类实例访问 endendclass Test def test Parent.new.method #错误!不同类无法访问 endend最后,对于default方法,在Ruby中其默认为public方法,而在Java中其相当于protected方法去掉子类访问的权限。
转载请注明出处:http://blog.csdn.net/sunset108/article/details/48372953
0 0
- 【Ruby】Ruby和Java比较——方法访问权限
- ruby中的访问权限
- Ruby中的类和实例方法比较
- 比较Perl、PHP、Python、Java和Ruby
- 比较Perl、PHP、Python、Java和Ruby
- Rails、Ruby、JAVA前景比较
- Ruby和Python的比较
- ruby和python的比较
- Ruby学习札记(6)-比较print、puts和p方法
- Ruby学习札记(6)-比较print、puts和p方法
- ruby和php的比较,以及和java的对比
- java和ruby
- ruby和java
- Perl、PHP、Python、Java和Ruby的比较
- Perl、PHP、Python、Java和Ruby的比较
- 【转】语言简评:比较Perl、PHP、Python、Java和Ruby
- 比较Perl、PHP、Python、Java和Ruby 【转载】
- Perl、PHP、Python、Java和Ruby的比较
- 【C++】智能指针之引用计数的实现
- 邮件帮助类
- nginx反向代理,动静态分离,缓存
- SVN
- Android之FrameLayout的使用
- 【Ruby】Ruby和Java比较——方法访问权限
- [算法][随机数]一种生成2个不相同的随机数的方法
- Android AsyncTask 简单使用
- 我的第一篇博客
- Jsp中引用的taglib标签的声明和${pageContext.request.contextPath} 的含义
- Java写到.txt文件,如何实现换行
- 正则表达式
- IE代理服务器没有响应 浏览器无法打开网页解决方法
- 薪资谈判应该避免的7个错误-兄弟连IT教育