Вы путают понятие объекта с концепцией статического метода:
У вас может быть много экземпляров таких объектов, как Test (test2, test2 и т. д.), каждый экземпляр будет иметь свою собственную жизнь: в реальной жизни аналогия имеет много автомобилей (экземпляры) класса (toyota corolla), например: все автомобили ar e, как описано в модели sepecification (класс)
Затем у вас есть статические методы, которые не используют конкретный экземпляр: например, security ckecks может быть статическим методом: многие автомобили проходят через уникальную безопасность проверить (что не является функцией вы можете запустить из вашего автомобиля: это не зависит от экземпляра)
вы можете использовать этот пример, чтобы лучше понять
public class Test{
int trails;
int days;
public String toString() {
return "trails :"+ trails +", days : "+ days;
}
}
public class Launcher{
public static void main (String []args){
if(args.length!=0){
Test test = new Test();
test.trails= Integer.parseInt(args[0]);
test.days= Integer.parseInt(args[1]);
Test test2 = new Test();
test2.trails= 5;
test2.days= 2;
Command cmd = new Command();
cmd.doSomething(test);
cmd.doSomething(test2);
cmd.doSomething(test);
}
}
}
public class Command {
Test lastTested;
public void doSomething(Test data) {
lastTested = data;
System.out.println("working with "+ lastTested);
}
}
в приведенном выше примере, вы создаете экземпляр теста, который вы заполняете данными. Затем вы создаете экземпляр Command, который сохранит в своем состоянии последний выполненный экземпляр Test, а затем распечатает данные тестового экземпляра с помощью метода toString().
Вы можете создать второй экземпляр Test с другими данными и передать его одному и тому же cmd (метод экземпляра команды doSomething()). Затем вы увидите, что экземпляр, который находится внутри cmd, изменился, но возврат к вашему испытанию первого экземпляра сохранил значения, как ожидалось
Нет, он не хочет, чтобы вы делали все статичным. – Ingo
Dude u нужен объект, поскольку переменные экземпляра относятся к объекту вместо статических переменных или методов, которые по существу являются членами класса, и вам не нужен объект для их использования. –
Оба ответа не имеют правильной проверки параметров. Вы ожидаете два параметра. Итак, почему вы только проверяете, что установлен хотя бы один параметр? – Hannes