实例化对象无法调用?
我在主方法运行的时候实例化了主播放列表mainPlayList,在播放列表管理的public void playMenu()方法里无法调用实例化的mainPlayList这个对象,这是为什么?
正在回答 回答被采纳积分+1
package mediaPlayer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
TestDemo td = new TestDemo();
td.test();
td.mainMenu();
}
// 歌曲类测试方法
public void testSong() {
// Song song1 = new Song("s02","Hello","adele");
// Song song2 = new Song("s01","Hello","adele");
// System.out.println(song1.toString());
// System.out.println(song1.equals(song2));
}
// 播放列表类测试方法
public void testPlayList() {
Song song1 = new Song("s01", "rolling in the deep", "adele");
Song song2 = new Song("s02", "hello", "adele");
Song song3 = new Song("s03", "someone like you", "adele");
// System.out.println(song1);
ArrayList<Song> al = new ArrayList<Song>();
PlayList pl = new PlayList("myfavoritelist", al);
pl.addToPlayList(song1);
pl.addToPlayList(song2);
pl.addToPlayList(song3);
pl.displayAllSong();
System.out.println("开始测试通过id查找歌曲*****************************");
Song tmp = pl.searchSongById("s04");
if (tmp == null) {
System.out.println("没有找到对应的歌曲");
} else {
System.out.println("找到了!");
System.out.println(tmp);
}
System.out.println("开始测试通过歌曲名查找歌曲*****************************");
tmp = pl.searchSongByName("hello");
if (tmp == null) {
System.out.println("没有找到对应的歌曲");
} else {
System.out.println("找到了!");
System.out.println(tmp);
}
System.out.println("开始测试修改歌曲*****************************");
// song3.setSinger("MJ");
Song song4 = new Song("s04", "演员", "薛之谦");
pl.updateSong(song4);
pl.displayAllSong();
System.out.println("开始测试删除歌曲*****************************");
pl.deleteSong("s01");
pl.displayAllSong();
System.out.println("开始测试导出歌单*****************************");
pl.exportPlayList();
}
// 播放器类测试方法
public void testPlayListCollection() {
System.out.println("开始测试添加播放列表*****************************");
}
// 主流程实现(完成相关初始化工作)
public void test() {
// 初始化1:新建一个存放播放列表的map
Map<String, PlayList> plistc = new HashMap<String, PlayList>();
// 初始化2:创建主播放列表
PlayList mainPlayList = new PlayList("主播放列表", null);
// 初始化3:将主播放列表存入plistc map中
plistc.put(mainPlayList.getPalyListName(), mainPlayList);
// 初始化4:通过带参构造函数创建播放器类实例mplayer,参数为map类的plistc
PlayListCollection myplayer = new PlayListCollection(plistc);
// 初始化完成后实例化的对象: 主播放列表 PlayList
// myplayer PlayListCollection
}
// 主菜单方法
public void mainMenu() {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("*******************************************");
System.out.println(" **主菜单**");
System.out.println(" 1--播放列表管理");
System.out.println(" 2--播放器管理");
System.out.println(" 0--退出");
System.out.println("*******************************************");
System.out.println("请输入对应数字进行操作");
int no = sc.nextInt();
// sc.close();
switch (no) {
case 1:
System.out.println("已选择:播放列表管理");
playListMenu(myplayer);
break;
case 2:
System.out.println("已选择:播放器管理");
playerMenu();
break;
case 0:
System.exit(0);
default:
System.out.println("输入不正确,请重新输入数字!");
continue;
}
}
// 测试break是否能够跳出整个菜单循环
// System.out.println("主菜单程序结束");
}
// 播放列表管理菜单方法
public void playListMenu(PlayListCollection playlistc) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("*******************************************");
System.out.println(" **主菜单**");
System.out.println(" 1--将歌曲添加到主播放列表");
System.out.println(" 2--将歌曲添加到普通播放列表");
System.out.println(" 3--通过歌曲id查询播放列表中的歌曲");
System.out.println(" 4--通过歌曲名称查询播放列表中的歌曲");
System.out.println(" 5--修改播放列表中的歌曲");
System.out.println(" 6--删除播放列表中的歌曲");
System.out.println(" 7--显示播放列表中的所有歌曲");
System.out.println(" 8--导出歌单");
System.out.println(" 9--返回上一级菜单");
System.out.println("*******************************************");
System.out.println("请输入对应数字进行操作");
int no = sc.nextInt();
// sc.close();
switch (no) {
case 1:
System.out.println("已选择:将歌曲添加到主播放列表");
System.out.println("请输入要添加的歌曲的数量");
no = sc.nextInt();
String id = null;
String name = null;
String singer = null;
//此处无法调用之前定义的myplayer或者mainPlayList
for (int i = 0; i < no; i++) {
System.out.println("请输入第" + (i + 1) + "首歌曲:");
System.out.println("请输入歌曲的id");
id = sc.next();
System.out.println("请输入歌曲的名称");
name = sc.next();
System.out.println("请输入演唱者");
singer = sc.next();
Song temp = new Song(id,name,singer);
}
break;
case 2:
System.out.println("已选择:将歌曲添加到普通播放列表");
break;
case 3:
System.out.println("已选择:通过歌曲id查询播放列表中的歌曲");
break;
case 4:
System.out.println("已选择:通过歌曲名称查询播放列表中的歌曲");
break;
case 5:
System.out.println("已选择:修改播放列表中的歌曲");
break;
case 6:
System.out.println("已选择:删除播放列表中的歌曲");
break;
case 7:
System.out.println("已选择:显示播放列表中的所有歌曲");
break;
case 8:
System.out.println("已选择:导出歌单");
break;
case 9:
System.out.println("已选择:返回上一级菜单");
mainMenu();
break;
case 0:
System.exit(0);
default:
System.out.println("输入不正确,请重新输入数字!");
continue;
}
}
}
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星