2014-11-14 4 views
0

Я очень новичок в программировании и все еще запутался в некоторых вещах. Ниже приведено упражнение класса.Определение типов данных

Мы должны использовать контекст в приведенном ниже коде для определения типа данных идентификаторов в коде.

if (a.length() > 10) 

{ 

    b = ! (c < 4); 

    z = ugly (a, b, c – 9); 

} 

if (z.equals(“I think I got it”)) 

{ 

    System.out.println (“Yea”); 

} 

вот мои ответы: a; is int

b; is int

c; is int

z; is String

Уверен, что я ошибался. Наверное, я смущаюсь, когда вижу «a» & «z» в нескольких местах. Опять же, я просто пытаюсь лучше понять их идентификацию.

+0

int является примитивным типом и не имеет функции 'length()'. поэтому ваш ответ неправильный. ключом для ответа на вопрос является 'length()' и 'equals()' функции для a и z. для b и c, проверьте значения. вы найдете ответ тогда! ;) –

+0

'a' должен иметь тип' org.omg.CORBA.TypeCode', потому что этот класс имеет метод 'length()'. Или это может быть 'java.util.concurrent.atomic.AtomicReferenceArray', или' java.lang.StringBuffer', или один из 26 других в JRE, которые имеют методы 'length()'. На самом деле, если это упражнение класса, это один из тупиков, с которыми я столкнулся. Даже если вы ограничиваете себя примитивными типами и 'String', вы все еще не знаете, что такое' c'. (P.S.Мэтью, пожалуйста, не цитируйте ничего, что я сказал в вашей домашней работе. Я очень саркастичен здесь.) – ajb

ответ

0
a.length() 

length() - метод объекта String;

c < 4 

Это логическое испытание (результат может быть истинным или ложным), где c может быть числом (int).

z.equals(“I think I got it”) 

equals - это метод объекта, но он проверяет значение z в этом случае на String.

Так а является строкой

Ь булево

с является INT или другим числовым (может быть длинным или байты, короткий)

г является строкой или otehr непримитивного объекта

+0

Спасибо за помощь! –

1

a не может быть int, потому что вы не можете назвать такие методы, как .length() на int.

b не может быть int, потому что в строке b = ! (c < 4);, выражение справа имеет тип boolean, и вы не можете назначить boolean к int.

c действительно может быть int, но он также может быть long.

z действительно может быть String, но в принципе это может быть любой не примитивный тип (поскольку все объекты имеют метод equals()).

+0

Я бы сказал, что Z - это объект, потому что строки - это объекты в Java в любом случае. Практически это почти определенно строка, потому что метод equals объекта по умолчанию сравнивает местоположение памяти (как вы можете видеть, пример сравнивает его со строкой ... это произойдет только в том случае, если кто-то перезаписал функцию равного объекта) – Alter

+0

'c 'может быть * любым * числовым типом, не так ли? – ajb

+0

Спасибо за помощь! –

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