Как я могу создать метод с параметрами, создающими экземпляр в Java?

1

поэтому я новичок, изучающий классы и ориентированные объекты в 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);
        }
}
Теги:
class
methods

2 ответа

4
Лучший ответ
    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 и передать его вашему основному методу.

0
 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 и имя мобильного объекта такие же, что и почему вы получили ошибку

Ещё вопросы

Сообщество Overcoder
Наверх
Меню