问下java的几个入门问题 谢谢

richardzhang
问下java的几个入门问题 谢谢

1.java中数组是对象,可以调用length方法,请问是哪个类的实例呢?为什么不用import语句呢?
int[] a=new int[5];是调用哪个构造函数的啊?

2.书上写String对象是不能更改的,若要更改用StringBuffer,那么下面的代码不是更改了String对象吗?
String a="a";
a.concat(a);

谢谢!

还有一个问题
exclipse下建立一个java project,代码如下,文件名为Helloworld.java,为什么编译正确,却不能运行,文件名改为a.java后就可以
编译运行了呢?
package com.test;

class a
{
        public static void main(String args[])
        {
                System.out.println("Hello,world");
               
        }
       
}

[[i] 本帖最后由 richardzhang 于 2008-3-24 23:48 编辑 [/i]]

kakasi
数组权且看作一个特殊的类吧,length是它的属性。
a.concat(a);,改变的并不是最初那个了。见源码
[table=95%][tr][td][font=FixedSys][color=#000000]    [color=#0000FF]public[/color] [color=#FF0000]String[/color] [color=#FF0000]concat[/color][color=#0000CC]([/color][color=#FF0000]String[/color] str[color=#0000CC])[/color] [color=#0000CC]{[/color]
    [color=#0000FF]int[/color] otherLen [color=#0000CC]=[/color] str[color=#0000CC].[/color][color=#FF0000]length[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
    [color=#0000FF]if[/color] [color=#0000CC]([/color]otherLen [color=#0000CC]=[/color][color=#0000CC]=[/color] 0[color=#0000CC])[/color] [color=#0000CC]{[/color]
        [color=#0000FF]return[/color] [color=#0000FF]this[/color][color=#0000CC];[/color]
    [color=#0000CC]}[/color]
    [color=#0000FF]char[/color] buf[color=#0000CC][[/color][color=#0000CC]][/color] [color=#0000CC]=[/color] [color=#0000FF]new[/color] [color=#0000FF]char[/color][color=#0000CC][[/color][color=#FF0000]count[/color] [color=#0000CC]+[/color] otherLen[color=#0000CC]][/color][color=#0000CC];[/color]
    [color=#FF0000]getChars[/color][color=#0000CC]([/color]0[color=#0000CC],[/color] [color=#FF0000]count[/color][color=#0000CC],[/color] buf[color=#0000CC],[/color] 0[color=#0000CC])[/color][color=#0000CC];[/color]
    str[color=#0000CC].[/color][color=#FF0000]getChars[/color][color=#0000CC]([/color]0[color=#0000CC],[/color] otherLen[color=#0000CC],[/color] buf[color=#0000CC],[/color] [color=#FF0000]count[/color][color=#0000CC])[/color][color=#0000CC];[/color]
    [color=#0000FF]return[/color] [color=#0000FF]new[/color] [color=#FF0000]String[/color][color=#0000CC]([/color]0[color=#0000CC],[/color] [color=#FF0000]count[/color] [color=#0000CC]+[/color] otherLen[color=#0000CC],[/color] buf[color=#0000CC])[/color][color=#0000CC];[/color]
    [color=#0000CC]}[/color]
[/color][/font][/td][/tr][/table]
你的class没有public声明。

[[i] 本帖最后由 kakasi 于 2008-3-25 12:21 编辑 [/i]]

jerry_shen
你的类名class a,所以必须放在a.java中,如果你把类名改成Helloworld,就可以放在Helloworld.java中了。

richardzhang
可为什么能编译通过呢?和文件名不同不会编译错误吗?