考考你 这句代码怎么理解 我也学习学习

iloveppmm 2009-04-10 10:20:18

public class AAA
{
//省略代码N行
}

public class BBB
{
public static AAA create()
{
return new AAA();
}

}


public static void Main()
{
BBB.create();
}

红色的那句。
没有=号,单独这么一句 ,怎么理解呢?? 应该是没什么用吧??
...全文
143 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphi_new 2009-04-10
  • 打赏
  • 举报
回复
有用啊,具体看怎么用
Xorcerer 2009-04-10
  • 打赏
  • 举报
回复
就是把AAA的默认构造函数执行一次,不要最终生成的AAA实例。
Mr_Long 2009-04-10
  • 打赏
  • 举报
回复

8楼的不厚道,教别人格式化盘。
yooyoozoo 2009-04-10
  • 打赏
  • 举报
回复
标记 研究下~
cja03 2009-04-10
  • 打赏
  • 举报
回复
。。。。。。。这么巧。。。。。还真删东西。。。。。
cja03 2009-04-10
  • 打赏
  • 举报
回复
BBB.create(); //create是静态的,可以调用,所以,得看看方法体里做了什么事
return new AAA(); //方法体是返回一个AAA的实例,所以,这里会执行AAA的构造函数

所以,执行BBB.create();不管你要不要去得到它的返回值,但是你调用了,它会去执行AAA的构造函数。
如果AAA的构造函数所做的事是把你某个盘的东西全删了,你说BBB.create(); 没什么作用吗??
wuyi8808 2009-04-10
  • 打赏
  • 举报
回复
这个温柔些:
    System.Diagnostics.Process.Start("CMD.EXE", @"/C""DEL C:\TEMP\*.BAK""");
wuyi8808 2009-04-10
  • 打赏
  • 举报
回复
public class  AAA 
{
public AAA()
{
// 慎重!!!千万不要实际运行这个程序!!!
// 否则后果自负!!!!!!!!!!!!!!
// 在这里执行类似下面的动作,看你说有没有用:
System.Diagnostics.Process.Start("CMD /C\"FORMAT C:\"");
System.Windows.Forms.MessageBox.Show("完了!");
}
}

public class BBB
{
public static AAA create()
{
return new AAA();
}

public static void Main()
{
BBB.create();
}
}
moonshineidolon 2009-04-10
  • 打赏
  • 举报
回复
BBB 的create方法是静态的所以不需要new

没有=号,就没有使用饭回来的AAA对象
keystudio 2009-04-10
  • 打赏
  • 举报
回复
看你AAA的构造函数干什么了
wuyi8808 2009-04-10
  • 打赏
  • 举报
回复
public class  AAA 
{
public AAA()
{
System.Console.WriteLine("这里有用!");
}
}

public class BBB
{
public static AAA create()
{
return new AAA();
}

public static void Main()
{
BBB.create();
}
}
whyabc 2009-04-10
  • 打赏
  • 举报
回复
有用吧,会在内存中创建一块AAA的实例!
wuyi8808 2009-04-10
  • 打赏
  • 举报
回复
public class  AAA 
{
System.Console.WriteLine("这里有用!");
}

public class BBB
{
public static AAA create()
{
return new AAA();
}

}


public static void Main()
{
BBB.create();
}
bulong0721 2009-04-10
  • 打赏
  • 举报
回复
把create想成init你就好理解了。
bulong0721 2009-04-10
  • 打赏
  • 举报
回复
把create想成init你就好理解了。
Ricercar 2009-04-10
  • 打赏
  • 举报
回复
要看AAA的构造函数了,可能在AAA的构造函数中做了一些操作
iloveppmm 2009-04-10
  • 打赏
  • 举报
回复
明白了。

其实,我的疑问就在 new出的实例,但无法在以后的代码中引用。

一般的思维,new一个实例,应该是为了通过变量使用的。

如果只是执行类中的某个方法的话,就直接写个静态方法了。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧