поэтому я новичок, изучающий классы и ориентированные объекты в java. Каждый экземпляр мобильного телефона сохраняет модель, имя владельца и номер. Поэтому в основном файле я пытаюсь создать метод с этими параметрами и идентификатором для создания нового экземпляра. Однако компиляция говорит, что имя mobName уже определено в createMobile. Он должен сделать экземпляр, который можно указать на использование "mob1". Любая помощь?
class PhoneSystem{
public static void main(String[] args){
createMobile("mob1", "Android S4", "John Doe", 13374042);
}
public static void createMobile(String mobName, String brand, String owner, int number){
Mobile mobName = new Mobile();
mobName.SetBrand(brand);
mobName.SetOwner(owner);
mobName.SetNumber(number);
}
}
public static void createMobile(String mobName, String brand, String owner, int number){
Mobile mobName = new Mobile();
...
Эти две строки находятся там, где находится ваша проблема. Вы определили имя String mobName
. Затем вы Mobile mobName
определить переменную с тем же именем, что и Mobile mobName
. Переменные не могут совместно использовать одно и то же имя, даже в декларации и методе метода. Там есть уникальный случай, когда это возможно, но который включает в себя поля и экземпляры и выходит за рамки этого вопроса.
Поскольку вы хотите mob1
вы должны сделать:
Mobile mob1 = new Mobile();
Кроме того, вы не указали, хотите ли вы, чтобы mob1
был его именем или его именем переменной. Если вы хотите, чтобы устройство было известно как mob1
вы, вероятно, должны сделать так, чтобы Mobile
mob1
имя устройства как String. Существует еще один способ связать экземпляр Mobile
с именем через Map
но поскольку вы говорите, что изучаете OO, это также может быть вне сферы действия, поскольку оно связано с Collection
.
Тем не менее, текущий код, который вы предоставили, приведет к тому, что mob1 выйдет из области действия в конце метода. Возможно, вы хотели return
его в основной класс?
public static Mobile createMobile(String mobName, String brand, String owner, int number){
Mobile mob1 = new Mobile();
...
return mob1;
}
Это позволит вам создать mob1
и передать его вашему основному методу.
public static void createMobile(String mobileName, String brand, String owner, int number){
Mobile mobName = new Mobile();
mobName.SetBrand(brand);
mobName.SetOwner(owner);
mobName.SetNumber(number);
}
Здесь createMobile метод имя первого arg и имя мобильного объекта такие же, что и почему вы получили ошибку