当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Java新手问题
帖子发表于 : 2007-06-18 15:58 
头像

注册: 2007-04-03 9:52
帖子: 353
送出感谢: 0 次
接收感谢: 0 次
昨天翻了一下以前买的 Thinking in Java , 写了一个HelloWorld 如下

代码:
public class Hello
{
    public static void main(String[] args)
    {
        System.out.println("Hello World");
    }
}


运行过程中发现几个问题
1. 刚开始时随便写了个1.java, 运行时提示Hello 是Public 的,文件名必须是Hello.java , 改了就OK了

问题:如果要在1个文件内写多个类,该用什么文件名? 是不是用main 所在的类的名字命名文件名就行了?
如果没有main呢?

2. class 前面有个public 的 是用在继承时,还是其它的情况?
试过将 Hello 前面的public 改为private, 结果运行就出问题了

3. 试过将main 前面的public 改为private 就会提示"Main method not public."
既然main是 Hello的成员,Hello 应该可以访问他的私有方法(method),
猜测 java 有种机制 先new 一个Hello 对象,然后再调用它的公共方法, 不知道猜测是否正确?

4. 如果将main 前面的static 去掉就会提示
Exception in thread "main" java.lang.NoSuchMethodError: main
为什么会这样呢?

请知道的朋友解答一下,谢谢!


附件:
java.jpg
java.jpg [ 38.72 KiB | 被浏览 597 次 ]



_________________
TODO LIST:
1.valgrind:
2.gcov:
3.cppuint:未在Linux中使用
4.PostgreSQL:unixODBC
5.Doxygen:UTF8 中文问题,生成LaTex文档问题
6.LaTex:明确安装问题,UTF8 中文字体问题
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-06-20 12:29 
头像

注册: 2006-06-27 16:37
帖子: 88
地址: china
送出感谢: 0 次
接收感谢: 0 次
运。。你确定你看过think in java了吗?你这些问题都非常初级,里面都有详细解释。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-06-21 10:21 

注册: 2007-06-21 9:34
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
就是啊,LZ的问题是不是有点太简单了?去看看书就会明白了


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-06-21 21:15 
头像

注册: 2007-04-03 9:52
帖子: 353
送出感谢: 0 次
接收感谢: 0 次
seaway 写道:
运。。你确定你看过think in java了吗?你这些问题都非常初级,里面都有详细解释。


我直接看的第二章,目前只看到这里. 因为工作和影印版的关系,没有很多时间去看这本书。

tjmacoo 写道:
就是啊,LZ的问题是不是有点太简单了?去看看书就会明白了


我说过是新手问题了呀。

我主要是用C/C++,因为有差异,所以想知道Java为什么要这样做,

比如第一个问题,很多程序设计语言并没严格规定源文件的名称,源文件只不过是代码的一个载体,
(不管你是用茶杯还是用茶壶这种载体,茶还是茶)

Java却有如此规定,刚开始接触的人难免会有疑问。


_________________
TODO LIST:
1.valgrind:
2.gcov:
3.cppuint:未在Linux中使用
4.PostgreSQL:unixODBC
5.Doxygen:UTF8 中文问题,生成LaTex文档问题
6.LaTex:明确安装问题,UTF8 中文字体问题


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-06-22 13:56 
头像

注册: 2007-03-01 20:46
帖子: 2393
地址: 湖南长沙
送出感谢: 0 次
接收感谢: 0 次
1. 对于Java而言,一个文件只能对应一个public类,文件中的其他类必须是private或者内部类(类内部的public static或者private)
2. class前面的public就是说明该类为公有类,也就是说该类在任何情况下都是可见的,并不只针对于继承,和C++不同的
3. Java中的main函数和C++中的一样,都是有特殊意义的,如果写成了private,那么说明main函数是某个类私有的,不公开,当然在运行时会找不到咯
4. main函数当然不是某个类特有的函数,而是整个程序的主入口,所以是静态方法咯,要加static


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-06-27 21:42 

注册: 2007-06-25 2:13
帖子: 27
送出感谢: 0 次
接收感谢: 0 次
这些问题应该到java论坛去问,别在这里阿
要是是配置问题还说得过去,皑皑


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-06-27 22:42 
头像

注册: 2005-09-20 14:29
帖子: 85
地址: 弯弯的月亮
送出感谢: 0 次
接收感谢: 0 次
1、一个文件只能有且只有一个public类,并且只能以这个public类名作为文件名,如果没有public类,那么文件名可以是任意的名字,如果不是public类,类可以是其他任何权限,包括默认权限(无修饰符),protected,private,以及内部类。
2、一个类只有被public和protected修饰并且没有final修饰才可以被继承,protected权限的类只能在一个包(package)里的类都可以调用。private修饰的类只能在当前文件的类被调用,内部private类只能被其外部类初始化并调用。内部public类可以在外部任何位置调用,权限继承其外部类。
3、main方法是被虚拟机调用。其他不可调用。JAVA只有一种初始化方式,就是new关键字,在堆中创建对象。
4、main方法必须是静态方法,因为main方法可以放在任何一个对象内部被虚拟机调用,假使main不是静态方法,那么main方法必须在类初始化后创建,在虚拟机调用main之间,对象不可能被初始化,所以必须是静态方法,静态方法在对象初始化之前就已经被创建(存在)。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译