Как моя программа попала на выход 1 - PullRequest
0 голосов
/ 29 ноября 2018

Хорошо, так что я делаю AP comp sci для средней школы, и я действительно запутался в том, как эта программа достигла A = 1. Я не вижу никаких объявлений для x и y.Спасибо

public class ClassA
{
    public static void main(String args[])
    {
        ClassA n = new ClassA(1 , 2);  
        int a = 0;
        a = n.methodA(a);
        System.out.println("a =" + a);


    }
    private int myNum1;
    private int myNum2;
    public ClassA(int x, int y)   
    {
        myNum1 = x;
        myNum2 = y;
    }

    public int methodA(int y)
    {
        return myNum1+y;

    }

    public int getMyNum1()
    {
        return myNum1;

    }

    public int getMyNum2()
    {
        return myNum2;
    }
}

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

Когда вы сделаете ClassA n = new ClassA(1 , 2); myNum1 станет 1, а myNum2 станет 2 для объекта n.

Теперь, когда вы вызываете n.methodA(a), вы, по сути, звоните n.methodA(0) исогласно определению methodA, он вернет myNum1+0 => 1+0 => 1

0 голосов
/ 10 февраля 2019

Вот что делает ваш код ..

public static void main(String args[])
{
    ClassA n = new ClassA(1 , 2); // x = 1, y = 2
    int a = 0;
    a = n.methodA(a); // a = 1 + 0 = n.Method(a = 0) 
    System.out.println("a =" + a); // prints a = 1


}


 /** remember that myNum1 = x = 1, as stated in 
ClassA n = new ClassA(1 , 2) **/

public int methodA(int y) // int y = a = 0
{
    return myNum1+y; // return (myNum1* + y = 1 + 0)

}

n.Method(a) вернет 1 (потому что 0 + 1 = 1), что печатает a = 1

0 голосов
/ 29 ноября 2018

На самом деле не имеет значения, что вы используете в качестве параметров для вашего конструктора.Вы создаете a и устанавливаете его в 0, затем устанавливаете a в n.methodA(a), где параметр a равен 0, что возвращает 1.

Вы можете использовать любые значения для вызова конструктора, и онn.methodA(a) всегда будет возвращать 1.

Поиск "java visualizer" в Интернете для хорошего инструмента, который поможет вам понять, что ваша программа делает шаг за шагом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...