Нужна помощь в определении переменных экземпляра класса / примитива в этом примере - PullRequest
0 голосов
/ 16 апреля 2020

У меня огромная проблема с простым вопросом:

Определите переменные экземпляра примитива и переменные класса из кода ниже

class StudentDetails
{
    Int rollnumber;
    String studentname;
}

StudentDetails firststudent = new StudentDetails(19236, "Thomas");

My исходное представление было отправлено мне обратно, потому что я описал, что такое переменные примитива экземпляра и переменные класса, и я думаю, что я их неправильно определил. Комментарии возвращают состояние «четко указано, какие переменные являются примитивными переменными экземпляра (есть 1), а какие переменными класса (есть 1)».

Теперь я должен прочитать 10 различных статей / постов, объясняющих, какие переменные экземпляра и переменные класса есть, и я все еще запутался в отношении рассматриваемой переменной класса.

Во всех примерах, которые я видел, переменные класса объявляются с ключевым словом stati c в классе, но вне метода, конструктора или блока. В этом вопросе нет ключевого слова stati c. Это подразумевается как-то? Разве это не требуется для переменных класса?

Я предполагаю, что строка studentname является переменной класса просто потому, что int rollnumber является примитивной переменной. Однако я не уверен и хочу понять ответ.

Мои концепции для определения переменных класса исходят от таких сайтов, как:

1 Ответ

1 голос
/ 16 апреля 2020

Это звучит как проблема терминологии.

Я бы согласился, что поле, объявленное с static в Java или C#, является "полем класса" (есть только одно поле, принадлежащее сам класс) и другие поля являются «полями экземпляра» (для каждого экземпляра класса есть поле).

Но звучит так, будто вопрос действительно о «классе типах » "против" примитивных типов". Ваш код недопустим Java или C#, но в зависимости от контекста предполагается, что он должен быть Java, int (нижний регистр) - это примитивный тип, а String - это тип класса.

Таким образом, rollnumber является полем экземпляра, значение которого имеет тип примитива (int) - таким образом, это «поле экземпляра примитивного типа». И studentname также является полем экземпляра, но его значение относится к типу класса (String) - таким образом, это «поле экземпляра класса».

Я бы рекомендовал обсудить это с кто бы ни дал вам задание, чтобы вы понимали терминологию, которую они ожидают при выполнении заданий в будущем. Я полагаю, что они могли бы использовать, например, термин «stati c field» вместо «field class».

...