Java 调用列表中定义的对象的方法
我正在尝试使用ArrayList called phone从主方法调用addContact方法,但它不起作用 代码如下:Java 调用列表中定义的对象的方法,java,arraylist,methods,Java,Arraylist,Methods,我正在尝试使用ArrayList called phone从主方法调用addContact方法,但它不起作用 代码如下: import java.util.ArrayList; import java.util.Scanner; class A { String name; int num; Scanner sc = new Scanner(System.in); public A(String name, int num) { this.n
import java.util.ArrayList;
import java.util.Scanner;
class A {
String name;
int num;
Scanner sc = new Scanner(System.in);
public A(String name, int num) {
this.name= name;
this.num= num;
}
public void addContact() {
sc.nextLine();
System.out.println("Enter name:");
name = sc.nextLine();
System.out.println("Enter number:");
num = sc.nextInt();
}
}
public class Main {
static void menu() {
System.out.println("1. add");
System.out.println("2. break");
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList <A> phone;
while(true) {
menu();
int c = sc.nextInt();
if(c==1) {
phone.add().addContact();
//I'm trying to call addContact()
} else if(c==2) {
break;
}
}
}
}
为什么我不能直接呼叫phone.add.addContact?您需要创建列表的实例:
ArrayList phone=新的ArrayList 您的问题从这里开始:
ArrayList <A> phone;
然后,在您的主要方法中,您可以执行以下操作:
class Contact {
private final String name;
private final int number;
Contact(String name, int number) {
this.name = name;
this.number = number;
}
boolean loop = true;
while (loop) {
... have user enter a name and a number
if (name.equals("STOP")) {
loop = false;
} else {
Contact contact = new Contact(name, number);
phones.add(contact);
}
}
应包含要添加到ArrayList的A对象。您需要返回A对象
public A addContact() {
sc.nextLine();
System.out.println("Enter name:");
name = sc.nextLine();
System.out.println("Enter number:");
num = sc.nextInt();
return new A(name,num);
}
及
刚刚删除了你的addContact,并将其放置在while中。现在,我创建了一个新的实例,并将其添加到列表中。现在应该可以了。以后请发布更精确的问题。我无法给出工作代码。只需检查以下几点,使您的程序更好 为什么在使用add contact方法时创建带参数的构造函数。 在主类中为类A创建对象的位置。 尝试检查如何使用ArrayList类。因为您没有正确使用add。
在哪里添加这些行?在主方法中
ArrayList <A> phone;
phone.add().addContact();
public A addContact() {
sc.nextLine();
System.out.println("Enter name:");
name = sc.nextLine();
System.out.println("Enter number:");
num = sc.nextInt();
return new A(name,num);
}
if(c==1)
{
phone.add(addContact);
}
import java.util.ArrayList;
import java.util.Scanner;
class A {
String name;
int num;
Scanner sc = new Scanner(System.in);
public A(String name, int num) {
this.name= name;
this.num= num;
}
}
public class Main {
static void menu()
{
System.out.println("1. add");
System.out.println("2. break");
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList <A> phone = new Arraylist<A>();
while(true)
{
menu();
int c = sc.nextInt();
if(c==1)
{
System.out.println("Enter name:");
String name = sc.nextLine();
System.out.println("Enter number:");
int num = sc.nextInt();
phone.add(new A(name,num));
}
else if(c==2)
{
break;
}
}
}
}