[英]Java can't access static public method
我沒有找到類似的問題,這是我注意到的參考,但沒有幫助: 從Scala訪問公共靜態Java方法
我對為什么無法從Start類訪問cellPhone方法addContact感到困惑? addContact是公共的和靜態的。 如果您看一下joseph類,我想了解在訪問方面對象數組與對象ArrayList之間的區別。
我知道這是組織得很好的,也許我應該在Joseph課中加入cellPhone課? 但這也不起作用。
我的錯誤在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;
}
}
另外,addContact()是靜態方法。 這意味着該方法屬於該類而不是該類的實例。 換句話說,所有CellPhone實例都將共享列表static private List<String> myContacts
。 在方法之前和列表之前刪除靜態變量,這將很有意義。
我必須將CellPhone添加到列表中,然后進行設置。 我認為數組比較容易,但是顯然Arraylist是動態的。 對於任何遇到我問題的人,這就是我如何解決的。
jhr.myCellPhone.add(new cellPhone());
jhr.myCellPhone.get(0).addContact("Joseph");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.