Программа JAVA Basic Shopping Cart [дубликат]

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
4
задан Bobulous 19 March 2015 в 22:14
поделиться

8 ответов

Как и все остальные, вы должны указать свое возвращаемое значение. Потому что вы делаете «addFive (x)» вместо «x = addFive (x)»; вы просто печатаете экземпляр «x» в основном и никогда не получаете значение, возвращаемое функцией.

Это связано с тем, что «x» в вашей основной функции является переменной экземпляра, а ваш «x» в addFive () является локальной переменной. Это не одна и та же переменная, даже если они имеют одно и то же имя. Это может немного пояснить - http://www.tutorialspoint.com/java/java_variable_types.htm

2
ответ дан adamclmns 18 August 2018 в 19:51
поделиться

Вы должны установить возвращаемое значение переменной, иначе оно будет потеряно и вы получите значение «x» в своем основном методе. Сделайте это вместо этого, чтобы захватить возвращаемое значение.

   public static void main(String[] args) {
       int x=3;
       x = addFive(x);
       System.out.println("x = " + x);
   }

Если вы хотите видеть только возвращаемое значение и не сохранять его, вы можете даже вызвать вызов функции внутри System.out.println.

   public static void main(String[] args) {
       int x=3;
       System.out.println("x = " + addFive(x));

   }
4
ответ дан Evan Bechtol 18 August 2018 в 19:51
поделиться

Вы хотите x=addFive(x);, а не только addFive(x). Вызов addFive(x) на свой счет не применит возвращаемое значение к любой переменной.

6
ответ дан Jaken Herman 18 August 2018 в 19:51
поделиться

Значение в основной функции полностью отличается от значения в функции addFive(int x ). Вы отправляете метод x с основного на addFive(int x).

JVM делает копию x и отправляет ее методу addFive(int x). Затем x изменяется в методе addFive(int x). Но метод x в main() остается неизменным.

Если вы хотите получить измененное значение, возвращенное addFive(int x) из основного метода, вы можете сделать следующее -

int returnedValueFromAddFive = addFive(x)  

Надеюсь, это поможет. Большое спасибо.

0
ответ дан Mehmood Arbaz 18 August 2018 в 19:51
поделиться

, когда вы вызываете метод в java, и вы не назначаете для какой-либо переменной, изменения происходят в вызове метода, после чего это значение будет потеряно и вернется к назначению, которое вы назначили. чтобы увидеть результат, вы должны сделать это System.out.println(addFive(x));, но если вы хотите изменить значение x, вам нужно назначить x = addFive(x);

2
ответ дан Rafael Reis 18 August 2018 в 19:51
поделиться

Вы вызываете метод addFive(int x) с x, но не присваиваете возвращаемое значение чему-либо. Таким образом, область main() внутри x остается прежней, 3 - это то, что печатается. Таким образом, вы можете либо сохранить возвращенное значение самому x:

x = addFive(x);

, либо вызвать вызов функции в инструкции печати:

System.out.println("x = " + addFive(x));
1
ответ дан Sidmeister 18 August 2018 в 19:51
поделиться

Метод возвращает значение, но вы должны также установить значение переменной при ее возврате, или как узнать, какую переменную вы хотите вернуть? У вас может быть 10 переменных, и если вы просто вызовете метод, как он узнает, какую переменную вернуть номер? Вот почему вы должны установить возвращаемое число в переменную следующим образом:

x = addFive(x);
1
ответ дан Ski 18 August 2018 в 19:51
поделиться

Потому что вы просто не используете вычисление своей функции. Он не меняет значение x, он возвращает новое значение.

Вы должны сделать что-то вроде:

int y = addFive(x);
0
ответ дан slnowak 18 August 2018 в 19:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: