for循环外定义对象(变量)和for循环里定义对象(变量)的区别
外边:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package com.sky.demo; import java.util.ArrayList; public class Test { public static void main(String[] args) { User user = new User(); ArrayList<User> list = new ArrayList<User>(); for ( int i = 0 ; i < 3 ; i++) { user.setId( "a" +i); user.setName( "丫丫" +i); user.setHobby( "篮球" +i); list.add(user); } for (User user1 : list) { System.out.println(user1); } } } |
User{id='a2', name='丫丫2', hobby='篮球2'}
User{id='a2', name='丫丫2', hobby='篮球2'}
User{id='a2', name='丫丫2', hobby='篮球2'}
里面:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package com.sky.demo; import java.util.ArrayList; public class Test { public static void main(String[] args) { ArrayList<User> list = new ArrayList<User>(); for ( int i = 0 ; i < 3 ; i++) { User user = new User(); user.setId( "a" +i); user.setName( "丫丫" +i); user.setHobby( "篮球" +i); list.add(user); } for (User user1 : list) { System.out.println(user1); } } } |
User{id='a0', name='丫丫0', hobby='篮球0'}
User{id='a1', name='丫丫1', hobby='篮球1'}
User{id='a2', name='丫丫2', hobby='篮球2'}
请注意:下面的这两种写法的效果是一样的,你怎么写都是可以的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public MyPanel() { this .hero = new Hero( 100 , 100 ); //在这里我们可以在初始化坦克的时候设置坦克的速度 this .hero.setSpeed( 2 ); //创建敌人的坦克 for ( int i = 0 ; i < count; i++) { EnemyTank enemyTank = new EnemyTank( 100 * (i + 1 ), 0 ); System.out.println(enemyTank.hashCode()); enemyTank.setDirect( 2 ); enemyTank.setSpeed( 1 ); enemyTanks.add(enemyTank); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public MyPanel() { this .hero = new Hero( 100 , 100 ); //在这里我们可以在初始化坦克的时候设置坦克的速度 this .hero.setSpeed( 2 ); //创建敌人的坦克 EnemyTank enemyTank = null ; for ( int i = 0 ; i < count; i++) { enemyTank = new EnemyTank( 100 * (i + 1 ), 0 ); System.out.println(enemyTank.hashCode()); enemyTank.setDirect( 2 ); enemyTank.setSpeed( 1 ); enemyTanks.add(enemyTank); } } |
运行这两段代码,我们会看到都会创建不同的对象
214126413
396873410
1706234378
但是如果你像上图一样,已经在上面将对象创建好了,那么在list中添加进去的就是三个相同的对象了。
分类:
JAVA / java基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2021-08-05 软件工程基础知识 错题