2-2问题

2-2问题

问题1:private List<Song>musicList=new ArrayList<Song>();可以直接初始化吗?不在构造方法内;有什么区别吗,两者


问题2:

boolean flag=false;//判断播放列表中的歌曲是否存在

for(Song song1:musicList) {

if(song1.equals(song)) {

flag=true;break;

}

}

if(flag) {

System.out.println("该歌曲已存在于播放列表中,添加失败!");

}else {

musicList.add(song);

}

if(flag)  这里的意思是 if(flag==true)的意思吗,所以简写 if(flag);和前面定义的boolean flag=false;没有关系吧,如果先表示判断为false,就是 if(!flag),我理解的对吗?

问题3:

如果(song1.equals(song))的内容相同则执行 flag=true;break;但是flag=true是if里面的局部变量吧,外面的if(flag) 可以用吗?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小班 2021-01-29 17:41:31

同学你好,1、问题一:

        1)、private List<Song>musicList=new ArrayList<Song>();可以直接初始化。

        2)、不在构造方法内与直接在属性中实例化,只是加载时机不同,最后的执行效果是一样的。

    2、问题二:

        是的,这里的if(flag)  这里的意思就是 if(flag==true)的意思,因为在java中,

if(flag)和if(flag==true)的意思是一样的。

    3、flag作为局部变量,是在方法里的,并不是只在for循环里声明定义的,所以flag在整个方法体中都可以用。

祝学习愉快!

  • 提问者 rock221 #1
    是的,这里的if(flag) 这里的意思就是 if(flag==true)的意思,也就是和flag=false,没有关系吧?我以为以为先定义flag=false,后面的if(flag) 就是if (flag==false)呢
    2021-01-29 17:43:46
  • 好帮手慕小班 回复 提问者 rock221 #2

    同学你好,是的,flag=false是赋值语句,与判断条件并没有关系呐。

    祝学习愉快!

    2021-01-29 18:28:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师