(在线等回答)对象定义的问题 对一个类进行定义对象有两种方法( 假如这个类名叫Test,对象名叫Object001 )定义如下(1)Test Object001=new Test();(2)new test().Object001();这两种方法有什么区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的书上明明是这么写的我真是无可奈何本着对JAVA的喜爱请高手给我答案好么谢谢....... 《JAVA程序设计基础》清华大学出版社,这个书是我们学校发的!编著:吴晓东程序具体是这样的!:::public class OverLoading{ public static void main(String [] args){//============================================================ //OverLoading testOverLoading=new OverLoading(); new OverLoading().testOverLoading();//============================================================ } public void testOverLoading(){ System.out.println("Default constructor:"); new Tree(); System.out.println("Another constructor:"); for(int i=1;i<3;i++) { Tree t=new Tree(i*10); t.info(); t.info("overloaded method"); } }}class Tree{ int height; Tree() { prt("Planting a seeding"); height=0; } Tree(int i) { prt("Creating new Tree that is "+ i + " feet tall"); height=i; } void info() { prt("Tree is "+height+" feet tall"); } void info(String s) { prt(s+": Tree is "+height+" feet tall"); } static void prt(String s) { System.out.println(s); } } 两个等号中间和这样的!你们看看,我把两种都写上去了两个方法都能编译通过!可是下面一种方法能够运行上面那种不能运行! 我做了个测试,原来如此://:OverLoading1.javapublic class OverLoading1{ public static void main(String [] args){//============================================================ //下面的一行语句是生成一个OverLoading1对象testOverLoading, OverLoading1 testOverLoading=new OverLoading1();//下面的一行语句是生成一个OverLoading1对象并调用其方法testOverLoading(),//和上面一行的testOverLoading意义不一样,这样只有这一行会有执行结果! new OverLoading1().testOverLoading();//============================================================ } public void testOverLoading(){ System.out.println("Default constructor:"); new Tree(); System.out.println("Another constructor:"); for(int i=1;i<3;i++) { Tree t=new Tree(i*10); t.info(); t.info("overloaded method"); } }}class Tree{ int height; Tree() { prt("Planting a seeding"); height=0; } Tree(int i) { prt("Creating new Tree that is "+ i + " feet tall"); height=i; } void info() { prt("Tree is "+height+" feet tall"); } void info(String s) { prt(s+": Tree is "+height+" feet tall"); } static void prt(String s) { System.out.println(s); } } 能否说的更加明白一些OverLoading testOverLoading=new OverLoading();//这句是创建OverLoading类的对象testOverLoading。new OverLoading().testOverLoading();//这句是创建OverLoading类的对象testOverLoading,并且调用testOverLoading的构造函数,是不是??? //下面的一行语句是生成一个OverLoading1对象并调用其方法testOverLoading(),//和上面一行的testOverLoading意义不一样,这样只有这一行会有执行结果! new OverLoading1().testOverLoading();//这一句是先创建一个匿名OverLoading对象,紧接着调用该对象的行为public void testOverLoading() 看来应该是这样的:class A{ int a() { return 10; }}(new A()).a();就是生成一个对象,并调用其一个方法,加上括号就明白多了。 这是构造一个新对象,对象名称为"testOverLoading":OverLoading1 testOverLoading=new OverLoading1();这是构造一个没有名称的对象,并调用这个没有名称对象的testOverLoading方法:new OverLoading1().testOverLoading();这是两个不同的概念,虽然这里第一句的对象名称和此对象的一个方法同名,这字不过是一种巧合。 同意gavin1976(嘉文)的说法,UP! public void testOverLoading是OverLoading testOverLoading=new OverLoading();的构造方法!这样我能理解------------------------------------------------------------可是new OverLoading().testOverLoading();我不能理解上面的大哥说创建一个无名对象,然后无名对象调用testOverLoading()方法难道testOverLoading()方法(我认为是构造方法)能够如此用?在没有确定对象的名字的情况下,就能够拿出来用???? 这种定义方法其实很简单,songyangaaron说得没错,这就像java中监听函数一样。 public void testOverLoading是OverLoading testOverLoading=new OverLoading();的构造方法!这样我能理解------------------------------------------------------------可是new OverLoading().testOverLoading();我不能理解上面的大哥说创建一个无名对象,然后无名对象调用testOverLoading()方法难道testOverLoading()方法(我认为是构造方法)能够如此用?//在你给的源代码中testOverLoading()方法只是普通的方法,不是构造方法!!!//构造方法的命名应该和类名一样!!!而你的类名是OverLoading!!!在没有确定对象的名字的情况下,就能够拿出来用???? 迭代器小问题.。 老问题,怎么把 UTF-8 转换成 GB2312 无奈之下, 提问 ,高人写的东西 不大好理解 请教一个关于拼RGB颜色算法的思路--在线等 用ie打开applet出现 blockedexception 散分。大家好。吃饱了吗? 求救 请高手帮我 改改这个程序 新手Socket编程 请问怎么样可以给菜单加入带下划线那种快捷键??? 我要学习,我要JAVA 什么是多线程?可以用来做什么?有几种实现方式?兄弟们是怎么学它的? 这本书怎么样?
清华大学出版社,这个书是我们学校发的!
编著:吴晓东程序具体是这样的!:::public class OverLoading{
public static void main(String [] args){
//============================================================
//OverLoading testOverLoading=new OverLoading();
new OverLoading().testOverLoading();
//============================================================
}
public void testOverLoading(){
System.out.println("Default constructor:");
new Tree();
System.out.println("Another constructor:");
for(int i=1;i<3;i++)
{
Tree t=new Tree(i*10);
t.info();
t.info("overloaded method");
}
}
}
class Tree{
int height;
Tree()
{
prt("Planting a seeding");
height=0;
}
Tree(int i)
{
prt("Creating new Tree that is "+ i + " feet tall");
height=i;
}
void info()
{
prt("Tree is "+height+" feet tall");
}
void info(String s)
{
prt(s+": Tree is "+height+" feet tall");
}
static void prt(String s)
{
System.out.println(s);
}
} 两个等号中间和这样的!
你们看看,我把两种都写上去了两个方法都能编译通过!
可是下面一种方法能够运行
上面那种不能运行!
//:OverLoading1.javapublic class OverLoading1{
public static void main(String [] args){
//============================================================
//下面的一行语句是生成一个OverLoading1对象testOverLoading,
OverLoading1 testOverLoading=new OverLoading1();
//下面的一行语句是生成一个OverLoading1对象并调用其方法testOverLoading(),
//和上面一行的testOverLoading意义不一样,这样只有这一行会有执行结果!
new OverLoading1().testOverLoading();
//============================================================
}
public void testOverLoading(){
System.out.println("Default constructor:");
new Tree();
System.out.println("Another constructor:");
for(int i=1;i<3;i++)
{
Tree t=new Tree(i*10);
t.info();
t.info("overloaded method");
}
}
}
class Tree{
int height;
Tree()
{
prt("Planting a seeding");
height=0;
}
Tree(int i)
{
prt("Creating new Tree that is "+ i + " feet tall");
height=i;
}
void info()
{
prt("Tree is "+height+" feet tall");
}
void info(String s)
{
prt(s+": Tree is "+height+" feet tall");
}
static void prt(String s)
{
System.out.println(s);
}
}
//和上面一行的testOverLoading意义不一样,这样只有这一行会有执行结果!
new OverLoading1().testOverLoading();//这一句是先创建一个匿名OverLoading对象,紧接着调用该对象的行为public void testOverLoading()
class A
{
int a()
{
return 10;
}
}(new A()).a();就是生成一个对象,并调用其一个方法,加上括号就明白多了。
OverLoading1 testOverLoading=new OverLoading1();这是构造一个没有名称的对象,并调用这个没有名称对象的testOverLoading方法:
new OverLoading1().testOverLoading();这是两个不同的概念,虽然这里第一句的对象名称和此对象的一个方法同名,这字不过是一种巧合。
这样我能理解
------------------------------------------------------------
可是new OverLoading().testOverLoading();我不能理解
上面的大哥说创建一个无名对象,然后无名对象调用testOverLoading()方法难道testOverLoading()方法(我认为是构造方法)能够如此用?
在没有确定对象的名字的情况下,就能够拿出来用????
这样我能理解
------------------------------------------------------------
可是new OverLoading().testOverLoading();我不能理解
上面的大哥说创建一个无名对象,然后无名对象调用testOverLoading()方法
难道testOverLoading()方法(我认为是构造方法)能够如此用?
//在你给的源代码中testOverLoading()方法只是普通的方法,不是构造方法!!!
//构造方法的命名应该和类名一样!!!而你的类名是OverLoading!!!
在没有确定对象的名字的情况下,就能够拿出来用????