new?

dongond 2010-04-07 07:31:32

public class MainFrame extends JFrame {
JButton b1 = new JButton();
MainFrame(){
...
}
}

public class MainFrame extends JFrame{
JButton b1;
MainFrame(){
b1 = new JButton();
}
}


这两个位置new,有区别吗?
...全文
179 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
JavaShooter 2010-04-09
  • 打赏
  • 举报
回复
涉及到对象的创建过程,成员属性的初使化动作会在构造方法之前。
dongond 2010-04-09
  • 打赏
  • 举报
回复
谢谢各位啦~~了解了些
tonytone2008 2010-04-08
  • 打赏
  • 举报
回复
第一个是在创建对象,调用构造函数前被调用,而后者开始只是个无对象的引用,在构造函数中才新建并且赋值的
liboofsc 2010-04-08
  • 打赏
  • 举报
回复
一般没有什么区别,不如如果new对象有可能出现异常的话,就应该放在构造函数里new,可以进行异常处理。
CherishZheng 2010-04-08
  • 打赏
  • 举报
回复
同意11楼的,虽然效果相同,但是在内存中还是有差别的
yuyeyi 2010-04-08
  • 打赏
  • 举报
回复
写错了
list = new ArrayList();
list = new linkedList();
yuyeyi 2010-04-08
  • 打赏
  • 举报
回复
主要看你怎么用。
第一种是一开始就分配了内存
第二种要执行main frame方法才分配内存 而且在没有调用main frame方法而直接使用的就会抛异常
若是接口实现也可能不同
如:
List list;

main frame() {
new arrayList();
}

main frame1() {
new linkedList();
}
hanht123 2010-04-08
  • 打赏
  • 举报
回复
楼上正解 。如果只有一个构造函数没区别,如果多个的话,如果一定要用button对象的话,第一种就方便很多了
princess_rosie 2010-04-08
  • 打赏
  • 举报
回复
有区别,一个局部变量引用,一个全局变量引用,刚刚我回复的很仔细,可惜网页速度太慢,全部丢失..

有兴趣的话加我QQ聊: 179657283 或者直接加到我 的QQ群: 49167765 JAVAMM工作室

我们群里每个星期都有开课的..像你这种基础的可以在群里交流并得到提升....
qq707472 2010-04-08
  • 打赏
  • 举报
回复
第一个 在堆中出现这个对象的时间,比第二种早
soton_dolphin 2010-04-08
  • 打赏
  • 举报
回复
没区别,第一个是声明后直接创建了一个JBUTTON 对象。第二个是先声明,然后创建对象
zzg_boy 2010-04-07
  • 打赏
  • 举报
回复
没有什么区别,编程习惯!
joaryyu 2010-04-07
  • 打赏
  • 举报
回复
没有区别
不过要是你写N个构造函数的话,就有区别了。这样的话第一种方式就会好些了。
24K純帥 2010-04-07
  • 打赏
  • 举报
回复
木有区别,在循环里面就有区别了
lyh200731 2010-04-07
  • 打赏
  • 举报
回复
没区别 2种不同的写法 个人喜欢第一种 一目了然
水中影子 2010-04-07
  • 打赏
  • 举报
回复
没用区别,写法不同
amdgaming 2010-04-07
  • 打赏
  • 举报
回复
没么 区别 呵呵 后面的那种好些 关键看 你们的编程习惯
keeya0416 2010-04-07
  • 打赏
  • 举报
回复
没什么区别
其实上边的那句隐式的在构造函数里的前头
wd9053 2010-04-07
  • 打赏
  • 举报
回复
没什么区别吧

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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