2013-02-07 3 views
0

Существует два класса (класс Home и класс Away). Класс Away имеет метод, называемый методом обновления и обновления, имеет некоторые аргументы (речь, запись, чтение), значения которых назначаются в классе Home. И эти ценности меняются динамически ». У меня возникли проблемы при вызове этого метода обновления из класса Home, не могли бы вы привести мне пример? Вот то, что я пытался сделать:Как обновить метод другого класса?

public class Away 
{ 
    private void method1(String speech) 
    { 
     //.......definition of the method...... 
    } 

    private void method2(String writing) 
    { 
     //.....definition of the method...... 
    } 

    private void method3(String reading) 
    { 
     //......definition of the method...... 
    } 

    public void update(String speech, String writing, String reading) 
    { 
     Away away_object = new Away(String speech, String writing, String reading); 
     away_object.method2(speech); 
     away_object.method3(writing); 
     away_object.method4(reading); 
    } 
} 

Я пытался вызвать этот метод обновления из дома класса в следующем, но я понятия не имею, как изменить аргументы этого обновления method.Because эти аргументы имеют динамические значения внутри класс Home. Должен ли я создать конструктор или как я могу обновить этот метод «update()»?

Away object2 = new Away(); 

object2.update(speech, writing, reading); 

Я с нетерпением жду, чтобы услышать ваши ответы, и мне нужно это срочно ... Большое спасибо заранее ...

+0

Это трудно понять, что вы пытаетесь сделать или в чем проблема. В функции 'Update' объекта' Home' вы успешно создаете экземпляр объекта 'Away' и вызываете на нем функции. Затем этот экземпляр выходит из области действия после того, как функция 'update' в' Home' завершена. Разве это не намерение? – David

+0

Ждать, извините ... Я думал, что класс будет показан «Домой». Это 'Away'. Почему 'Away' создает новый экземпляр своего типа и вызывает его? Почему бы просто не вызвать функции в текущем экземпляре? Что вы пытаетесь сделать здесь? В качестве надуманного примера это довольно сложно. – David

+0

Привет, Дэвид, с тех пор, как я стал новичком в Java, я думал, что я должен создать экземпляр класса Away, чтобы иметь возможность вызвать частный метод, принадлежащий этому классу, из другого метода в том же классе. Моя цель - создать метод (обновление), который включает в себя другие методы одного и того же класса, и всякий раз, когда есть изменения в другом классе (который является Главная), значения должны обновляться. – user2052015

ответ

1

В вашей публичной функции обновления внутри Away класса вы, кажется, инстанцировании другой экземпляр самого удаленного класса.

Измените функцию так:

Отсюда:

public void update(String speech, String writing, String reading) 
{ 
    Away away_object = new Away(String speech, String writing, String reading); 
    away_object.method2(speech); 
    away_object.method3(writing); 
    away_object.method4(reading); 
} 

Для этого:

public void update(String speech, String writing, String reading) 
{ 
    method2(speech); 
    method3(writing); 
    method4(reading); 
} 
+0

Здравствуйте, rbruceporter, благодарю вас за ответ. Однако моя главная проблема заключается в передаче обновлений для класса Away. Поскольку переменные записи, записи и чтения создаются и сопоставляются динамическими значениями в классе Home. Причина, по которой я создал метод update(), включает все методы, принадлежащие классу Away, в один метод, чтобы я мог вызвать этот метод из класса Home и пройти значения речи, чтения и записи для этого метода, и поскольку этот метод включает в себя другие методы класса Away, их будет легко обновить. У вас есть моё мнение? Большое спасибо за ответ и ожидание ответа на ур – user2052015

+0

И там не хватает в том, что я делаю, чтобы вызвать этот метод update() из класса Home coz. Я всегда получаю ошибку. i означает, что это не работает: Away object2 = new Away(); object2.update (речь, письмо, чтение); Должен ли я создать конструктор или добавить некоторые аргументы, я понятия не имею, что делать точно – user2052015

+0

btw, следующее принадлежит классу Home: Away object2 = new Away(); object2.update (речь, письмо, чтение); – user2052015

Смежные вопросы