我正在做一个作业,我不知道该做什么。我有三个不同的Java类。我试图使用一个类中的方法来做另一个类中的事情。我正在做一个非常原始的播放列表程序。我必须检查播放列表是否已满,如果不是,我必须询问标题和艺术家。然后我必须使用标题和艺术家作为参数调用我的方法。我想知道是否有人能给我指出正确的方向,我必须做什么来调用方法?我仍然不完全理解循环,但我知道我必须使用一个for循环来做到这一点。谢谢你的时间。
下面是我的代码:
主要类别
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
PlayList p = new PlayList (5);
Scanner sc = new Scanner(System.in);
String command;
String title;
String artist;
System.out.println("Enter a to add, r to remove, d to display,or q to
quit:");
command = sc.nextLine();
while (!command.equals("q")) {
// Interpret command
if (command.equals("a")) {
//add song
for (int i = 0; i <= PlayList.isFull(title, artist);i++) {
if(songs[i])== null {
songs[i] = filled;
}
}
} else if (command.equals("r")) {
// Remove a song
System.out.print("Title: ");
title = sc.nextLine();
p.remove(title);
} else if (command.equals("d")) {
// Fill this in
}
// Get the next command
System.out.println("Enter a to add, r to remove, d to display, or q to
quit:");
command = sc.nextLine();
}
System.out.println("Program Ended");
}
}
播放列表类
public class PlayList {
private Song [] songs;
private int filled;
public PlayList (int size){
songs = new Song[size];
}
public boolean isFull() {
return (filled >= songs.length);
}
public void add(String t, String a) {
for (int i = 0; i < songs.length; i++){
if (songs[i] == null){
songs[i] = new Song(t,a);
filled++;
}
}
}
public void display() {
for (int i = 0; i < songs.length; i++){
if (songs[i] != null) {
System.out.println(songs[i]);
}
}
}
public void remove(String t) {
//return t?
for (int i = 0; i < songs.length; i--){
if (songs[i] == null){
songs[i] = null;
break;
}
}
}
}
歌曲类
public class Song {
String title;
String artist;
public Song (String t, String a) {
title = t;
artist = a;
}
public String toString() {
return "Title: " + title + " " + "Artist: " + artist;
}
}
2条答案
按热度按时间lmvvr0a81#
首先你使用的isFull类的PlayList函数是错误的。
1.isFull是一个无参数的函数,您在使用它时传递了2个参数。
1.isFull函数返回一个布尔值(即true/false),但您将其与一个 int 进行比较,这没有任何意义。
1.isFull不是一个 static 函数。因此,不能直接将其与类名一起使用。
此外,您的函数remove未执行任何任务
它检查songs[i]是否已经为空,然后将其设置回空,这没有任何意义。
您应该递增i(即i++),而不是递减(即i--)
pod7payv2#
如果你想从另一个类调用方法,那么这个方法必须是
static
方法。然后你可以用Class name
和Method name
来调用它。举个例子;你用两个参数调用了
isFull
方法,但是你的PlayList
类没有isFull
方法的任何参数。这是一个error
。我用ArrayList
为PlayList
类重写了你的赋值类集。按照下面的代码。希望你能理解它的OOP概念(按照这个教程。https://www.javatpoint.com/java-oops-concepts)。主要类别
PlayList
类别Song
类与您编写类相同