From: Robert Klemme Date: 2007-02-05T07:25:07+09:00 Subject: Re: method visibility VS accessibility On 04.02.2007 22:49, Thai Le wrote: > I've done java for a few years and ruby is pretty new to me. In java, a > method has visibility(private, protected, public) and Actually there are four of them: you have to add "package" visibility to the list. :-) > accessibility(static, non-static); however, in ruby how can I declare > the method: "public static method1"? It seem that the default visibility > of a method is public in ruby, am i correct? Yes. Strictly speaking there are no static methods in Ruby. But it has the concept of singleton methods that are defined for a single instance only. And since classes are just ordinary objects you can define instance methods of class objects and achieve basically the same as with Java's static methods: class Foo def self.a_class_method # ... end def an_instance_method self.class.a_class_method self.another_class_method end end def Foo.another_class_method # ... end > One morething is that java program starts from "public static main()". > What is the entry point to ruby program? The situation is a bit different because Ruby is interpreted. If you want, you can view the root script you invoke as the body of main, i.e., code is executed top down. However, part of this execution are class, method and constant definitions. Invocation arguments are accessible via ARGV (and also ARGF which is a special shortcut which will read from all files in ARGV). So, strictly speaking there is no equivalent of Java's and C's "main" but the functionality is there. Kind regards robert