Java не может получить доступ к статическому публичному методу - PullRequest
0 голосов
/ 27 октября 2018

Я не нашел подобного вопроса, это ссылка, которую я заметил, но она не помогла: Доступ к общедоступному статическому методу java из scala

Я не понимаю, почему я не могуполучить доступ к методу мобильного телефона addContact из класса Start?addContact является публичным и статичным.Если вы посмотрите на класс joseph, я хотел бы увидеть разницу между массивом объектов и ArrayList объектов с точки зрения доступа.

Я знаю, что это прекрасно организовано, возможно, у меня должен быть класс cellPhone в классе Joseph?Но это тоже не сработало.

Моя ошибка в классе Start.

Начальный класс:

public class Start 
{

public static void main(String[] args) 
{
    // TODO Auto-generated method stub
    Joseph jhr = new Joseph();



    jhr.addCreditCard("Visa");

    jhr.setWeight(168);
    jhr.setHairColor("Brown");
    jhr.setGender("male");
    jhr.setName("Randy ");
    jhr.myCellPhone.addContact();//ERROR: he method addContact() is undefined for the type List<cellPhone>

    jhr.cell[0].setCellPhone(5255857);
    jhr.cell[1].setCellPhone(4155053);
    jhr.cell[0].addContact("Bob");
    jhr.cell[1].addContact("Amy");
    //jhr.cell.addContact("Nameishi");
    //jhr.cell.setCellPhone(3333847);
    System.out.println("Single : "+jhr.showStatus() + " Gender: " + jhr.showGender() +" Name:"+jhr.showName());
    //System.out.println("Cell number: " +jhr.cell.showCellNumber());
    System.out.println("Middle name: " + jhr.middleName);
}

} 

Класс сотового телефона:

public class cellPhone {
private int cellPhoneNumber;
static private List<String>  myContacts =  new ArrayList<String>(100);

public cellPhone() {
    // TODO Auto-generated constructor stub
}
//show all numbers in cell phone
public final int showCellNumber() {
    return cellPhoneNumber;
}
//get all Contacts in cell Phone
public List<String> contactsList() 
{
    return myContacts;
}
//add numbers to cell phone
public void setCellPhone(int myNumber) {
    cellPhoneNumber = myNumber;
}
//add contacts to cell phone
static public void addContact(String contact) {
    myContacts.add(contact);
}


}

Класс Джозефа:

 public class Joseph extends human
{

//public static final cellPhone cell = null;
public cellPhone [] cell = new cellPhone[2];
static public List<cellPhone>  myCellPhone =  new ArrayList<cellPhone>(100);
public String middleName;
private int weight;

public Joseph() 
{
    middleName = "John";
    weight = 0;

    cell[0]= new cellPhone();
    cell[1]= new cellPhone();
    //cell.setCellPhone(3253847);
}

public void setWeight(int setw) 
{
    weight = setw;
}

public int getWeight() 
{
    return weight;
}
}

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Я должен добавить сотовый телефон в список, затем я должен установить его.Я думаю, что массивы проще, но, очевидно, Arraylist динамичны.Для всех, у кого есть проблема, вот как я ее решил.

    jhr.myCellPhone.add(new cellPhone());
    jhr.myCellPhone.get(0).addContact("Joseph");
0 голосов
/ 27 октября 2018

Кроме того, addContact () является статическим методом.Это означает, что метод принадлежит классу, а не экземпляру класса.Другими словами, все экземпляры CellPhone будут делиться списком static private List<String> myContacts.Удалите статические перед методом и перед списком, и все это будет иметь смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...