класс отделения по сравнению с идентификатором

Когда вы объявляете ссылочную переменную (т. е. объект), вы действительно создаете указатель на объект. Рассмотрим следующий код, в котором вы объявляете переменную примитивного типа int:

int x;
x = 10;

В этом примере переменная x является int, и Java инициализирует ее для 0. Когда вы назначаете его 10 во второй строке, ваше значение 10 записывается в ячейку памяти, на которую указывает x.

Но когда вы пытаетесь объявить ссылочный тип, произойдет что-то другое. Возьмите следующий код:

Integer num;
num = new Integer(10);

Первая строка объявляет переменную с именем num, но она не содержит примитивного значения. Вместо этого он содержит указатель (потому что тип Integer является ссылочным типом). Поскольку вы еще не указали, что указать на Java, он устанавливает значение null, что означает «Я ничего не указываю».

Во второй строке ключевое слово new используется для создания экземпляра (или создания ) объекту типа Integer и переменной указателя num присваивается этот объект. Теперь вы можете ссылаться на объект, используя оператор разыменования . (точка).

Exception, о котором вы просили, возникает, когда вы объявляете переменную, но не создавали объект. Если вы попытаетесь разыменовать num. Перед созданием объекта вы получите NullPointerException. В самых тривиальных случаях компилятор поймает проблему и сообщит вам, что «num не может быть инициализирован», но иногда вы пишете код, который непосредственно не создает объект.

Например, вы можете имеют следующий метод:

public void doSomething(SomeObject obj) {
   //do something to obj
}

В этом случае вы не создаете объект obj, скорее предполагая, что он был создан до вызова метода doSomething. К сожалению, этот метод можно вызвать следующим образом:

doSomething(null);

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

Альтернативно, там могут быть случаи, когда цель метода заключается не только в том, чтобы работать с переданным в объекте, и поэтому нулевой параметр может быть приемлемым. В этом случае вам нужно будет проверить нулевой параметр и вести себя по-другому. Вы также должны объяснить это в документации. Например, doSomething может быть записано как:

/**
  * @param obj An optional foo for ____. May be null, in which case 
  *  the result will be ____.
  */
public void doSomething(SomeObject obj) {
    if(obj != null) {
       //do something
    } else {
       //do something else
    }
}

Наконец, Как определить исключение & amp; причина использования Трассировки стека

49
задан Filip 13 December 2011 в 05:00
поделиться

21 ответ

Используйте id для идентификации элементов, что только будет единственный экземпляр на странице. Например, если у Вас есть единственная панель навигации, которую Вы помещаете в определенное местоположение, используете id="navigation".

Использование class для группировки элементов, что все ведут себя определенный путь. Например, если Вы хотите, чтобы Ваше название компании появилось полужирным в основном тексте, Вы могли бы использовать <span class='company'>.

83
ответ дан Jim 7 November 2019 в 11:13
поделиться

Классы для стилей, которые можно использовать многократно на странице, идентификаторы являются уникальными идентификаторами, которые определяют особые случаи для элементов. В стандартах говорится, что идентификаторы должны только использоваться однажды на странице. Таким образом, необходимо использовать классы для того, когда Вы хотите использовать стиль больше чем на одном элементе на странице и идентификатор, когда Вы просто хотите использовать его однажды.

Другая вещь состоит в том, что для классов можно использовать несколько значений (путем помещения пробелов, промежуточных каждый класс, а-ля "вздор ='blagh blah22 класса') wheras с идентификаторами, можно только использовать на идентификаторе на элемент.

Стили, определенные для идентификационных стилей переопределения, определенных для классов, таким образом, в, настройки стиля #uniquething переопределят стиль .whatever, если эти два будут конфликтовать.

, Таким образом, необходимо, вероятно, использовать идентификаторы для вещей как, заголовок, 'боковая панель' или что бы то ни было, и так далее - вещи, которые только появляются однажды на страницу.

0
ответ дан thesmallprint 7 November 2019 в 11:13
поделиться

В дополнение к идентификатору и классы, являющиеся большим для установки стиля на отдельном объекте стихи подобный набор объектов, существует также другой протест помнить. Это также зависит от языка до некоторой степени. В ASP.NET можно добавить Отделение и иметь идентификатор. Но при использовании Панели вместо Отделения, Вы потеряете идентификатор.

0
ответ дан CodeRot 7 November 2019 в 11:13
поделиться

Также, элементом, которому Вы даете определенный идентификатор, можно управлять через JavaScript и команды DOM - GetElementById, например.

В целом, я нахожу полезным дать все основные структурные отделения идентификатор - даже если первоначально, у меня нет определенных правил CSS применяться, у меня есть та возможность там будущего. С другой стороны, я использую классы для тех элементов, которые могли использоваться многократно - например, отделение, содержащее изображение и подпись - у меня могло бы быть несколько классов, каждый с немного отличающимися значениями моделирования.

Помнят, хотя при прочих равных условиях правила стиля в идентификационной спецификации имеют приоритет по тем в спецификации класса.

0
ответ дан Ken Ray 7 November 2019 в 11:13
поделиться

При использовании.Net веб-элементов управления тогда, иногда намного легче только использовать классы, поскольку.Net изменяет сеть contol идентификатор отделения во время выполнения (где они используют runat = "сервер").

Используя классы позволяет, Вы для легкого создания стилей с отдельными классами для шрифтов, интервала, граничите и т.д. Я обычно использую несколько файлов для хранения отдельных типов информации о форматировании, например, basic_styles.css для простого сайта широкое форматирование, ie6_styles.css для браузера определенные стили (в этом случае IE6) и т.д. и template_1.css для получения информации макета.

, Который когда-либо путь Вы выбираете попытку быть последовательными для помощи обслуживанию.

0
ответ дан Toby Mills 7 November 2019 в 11:13
поделиться

Моя предпочтительная разновидность должна использовать идентификацию класса, когда стили css применяются к нескольким отделениям таким же образом. Если структура или контейнер действительно только применяются однажды или могут наследовать свой стиль от значения по умолчанию, я не вижу оснований для использования идентификации класса.

, Таким образом, это зависело бы от того, является ли Ваше отделение одним из нескольких; например, отделение, представляющее вопрос ответу на stackoverflow веб-сайте. Здесь Вы хотели бы определить стиль для класса "Ответа" и применить это к каждому отделению "Ответа"

0
ответ дан James Winans 7 November 2019 в 11:13
поделиться

Я сказал бы, лучше использовать класс каждый раз, когда Вы думаете, что элемент стиля будет повторным на странице. Объекты как HeaderImage, FooterBar и т.п. подходят как идентификатор, так как Вы будете только использовать его однажды, и он поможет предотвратить Вас от случайного дублирования его, так как некоторые редакторы предупредят Вас, когда у Вас будут дублирующиеся идентификаторы.

я могу также видеть его полезный, если Вы собираетесь генерировать элементы отделения динамично и хотеть предназначаться для определенного объекта для форматирования; можно просто дать ему надлежащий идентификатор в поколении в противоположность поиску элемента и затем обновлению его класса.

0
ответ дан Dillie-O 7 November 2019 в 11:13
поделиться

идентификационный атрибут используется для элементов для однозначного определения их в рамках документа, тогда как атрибут класса может иметь то же значение, совместно использованное многими элементами в том же документе.

Так, действительно, если существует только один элемент на документ, это собирается использовать стиль (например, #title), затем пойдите с идентификатор . Если несколько элементов могут использовать стиль, пойдите с класс .

0
ответ дан Mark Cidade 7 November 2019 в 11:13
поделиться

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

0
ответ дан Sam Meldrum 7 November 2019 в 11:13
поделиться

Если это - стиль, Вы хотите использовать в нескольких местах на странице, использовать класс. Если Вы хотите большую настройку для отдельного объекта, говорите военно-морскую панель относительно стороны страницы, то идентификатор является лучшим, потому что Вам вряд ли будет нужна та комбинация стилей где-либо еще.

0
ответ дан HitScan 7 November 2019 в 11:13
поделиться

идентификатор, как предполагается, является уникальным идентификатором элемента на странице, которая помогает управлять им. Любой внешне CSS определил стиль, который, как предполагается, используется больше чем в одном элементе, должен пойти на атрибут класса

<div class="code-formatting-style-name" id="myfirstDivForCode">
</div>
0
ответ дан Vinko Vrsalovic 7 November 2019 в 11:13
поделиться

Я думаю, что все мы знаем, каков класс, но если Вы думаете об идентификаторах как об идентификаторах вместо того, чтобы разработать инструменты, Вы, привычка идет далеко неправильно. Вам нужен идентификатор при попытке предназначаться для чего-то и если у Вас есть больше чем один объект с тем же идентификатором, Вы больше не можете определять его...

Когда дело доходит до записи Вашего css для идентификаторов и КЛАССОВ, это выгодно, чтобы использовать минимальные css классы в максимально возможной степени и попытаться не стать слишком нагруженным идентификаторами, пока Вы НЕ будете ИМЕТЬ к, иначе Вы будете постоянно стремиться писать более сильные объявления и скоро иметь css файл, полный! важный.

1
ответ дан Steve Perks 7 November 2019 в 11:13
поделиться

Идентификаторы должны быть уникальными. КЛАССЫ должны быть совместно использованы. Так, если у Вас есть некоторый CSS, форматирующий, который будет применен к нескольким DIV, использовать класс. Если всего один (как требование, не как случайность), используют идентификатор.

2
ответ дан James Curran 7 November 2019 в 11:13
поделиться

Некоторые другие вещи иметь в виду:

  • При использовании ASP.NET Вы не имеете полного контроля над идентификатором элементов, таким образом, в значительной степени необходимо использовать класс (обратите внимание, что это менее верно, чем это однажды было).
  • Лучше использовать никакой , когда можно помочь ему. Вместо этого определите тип элемента, и это тип родителя. Например, незаказанный список содержавшее внутреннее отделение с navarea классом мог быть выбран этот путь:

    div.NavArea ul { /* styles go here */ }
    

Теперь можно разработать логическое подразделение для большой части всех navarea с одним приложением класса.

3
ответ дан Joel Coehoorn 7 November 2019 в 11:13
поделиться

Сам стандарт HTML отвечает на Ваш вопрос:

Никакие два объекта не могут иметь тот же идентификатор, но произвольно, сумма объектов может иметь тот же класс.

Поэтому, если бы Вы хотите применить определенные атрибуты стиля CSS к единственному DIV только, который был бы идентификатором. Если Вы хотите, чтобы определенные атрибуты стиля относились к нескольким ОТДЕЛЕНИЯМ, которые должны быть классом.

Примечание, что можно смешать обоих. Можно заставить два ОТДЕЛЕНИЯ принадлежать тому же классу, но дать им различные идентификаторы. Можно тогда применить стиль, характерный и для к классу и для вещам, характерным для любой одной к их идентификатору. Браузер сначала применит стиль класса и затем идентификационный стиль, таким образом, идентификационные стили смогут перезаписать то, что класс установил прежде.

4
ответ дан Mecki 7 November 2019 в 11:13
поделиться

Дополнительной выгодой для использования идентификатора является способность предназначаться для него в теге привязки:

<h2 id="CurrentSale">Product I'm selling</h2>

позволит, Вы к в некотором другом месте связываетесь непосредственно с тем пятном на странице:

<a href="#CurrentSale">the Current Sale</a>

общее использование А для этого должно было бы дать каждый заголовок на блоге идентификатор с меткой даты (скажите идентификатор = "date20080408"), который позволил бы Вам конкретно быть нацеленными на тот раздел страницы блога.

также важно помнить, что там более ограничиваются, называя правила для идентификаторов, прежде всего, что они не могут запустить с числа. Посмотрите подобный ТАК вопрос: , Что является допустимым значением для идентификационных атрибутов в html

6
ответ дан Community 7 November 2019 в 11:13
поделиться

классы являются большими, когда Вы хотите применить подобные стили ко многим различным отделениям или элементам. идентификаторы хороши, когда Вы хотите обратиться к определенному элементу для форматирования или для обновления с JavaScript.

6
ответ дан Mike Farmer 7 November 2019 в 11:13
поделиться

Идентификаторы должны быть уникальными, но в CSS они также берут приоритет при выяснении который из двух конфликтующих инструкций следовать.

<div id="section" class="section">Text</div>
#section {font-color:#fff}
.section {font-color:#000}

текст был бы белым.

24
ответ дан thanksd 7 November 2019 в 11:13
поделиться

Думайте об Университете.

<student id="JonathanSampson" class="Biology" />
<student id="MarySmith" class="Biology" />

Студент идентификационные карты отличны. Ни у каких двух студентов в кампусе не будет того же студента идентификационная карта. Однако многие студенты могут и совместно использовать по крайней мере один Класс друг с другом.

Это должно хорошо поместить несколько студентов до одного заголовок Класса , Биология 101. Но никогда не приемлемо подвергнуть несколько студентов одному студенту идентификатор .

При предоставлении Правила по школьной системе внутренней связи, можно дать Правила к Класс :

"Класс Биологии носил бы Красные Рубашки завтра?"

.BiologyClass {
  shirt-color:red;
}

Или можно дать правила Определенному Студенту путем вызова его уникального идентификатор :

"Jonathan Sampson носил бы Зеленую Рубашку завтра?"

#JonathanSampson {
  shirt-color:green;
}
33
ответ дан thanksd 7 November 2019 в 11:13
поделиться

Самая важная вещь понять состоит в том, что идентификаторы должны быть уникальными: только один элемент с данным идентификатором должен существовать в странице. Таким образом, если Вы желаете обратиться к определенному элементу страницы, это часто - лучшая вещь использовать.

, Если у Вас есть несколько элементов, которые в некотором роде подобны, необходимо использовать класс элементов для идентификации их.

Одно очень полезное, удивительно мало известного факта - то, что можно на самом деле применить несколько классов к единственному элементу путем помещения пробелов между именами классов. Таким образом, если Вы отправили вопрос, который был записан, в настоящее время входил в систему пользователь, Вы могли бы отождествить его с < класс отделения = "вопрос currentAuthor" > .

51
ответ дан Sean McMains 7 November 2019 в 11:13
поделиться

Где использовать идентификатор по сравнению с классом

Простое различие между этими двумя - то, что, в то время как класс может неоднократно использоваться на странице, идентификатор должен только использоваться однажды на страницу. Поэтому уместно использовать идентификатор на элементе отделения, который повышает основное содержание на странице, поскольку только будет один раздел основного содержания. Напротив, необходимо использовать класс для установки альтернативных цветов строк на таблице, поскольку они по определению собираются быть используемыми несколько раз.

Идентификаторы являются невероятно мощным инструментом. Элемент с идентификатором может быть целью части JavaScript, который управляет элементом или его содержанием в некотором роде. Идентификационный атрибут может использоваться в качестве цели внутренней ссылки, заменяя теги привязки с атрибутами имени. Наконец, если Вы ясно даете понять свои идентификаторы и логичный, они могут служить своего рода “сам документация” в рамках документа. Например, необходимо не обязательно добавить комментарий перед блоком, заявив, что блок кода будет содержать основное содержание, если открывающий тэг блока будет иметь идентификатор, скажем, "основного", "заголовок", "нижний колонтитул", и т.д.

1
ответ дан Konstantin Tarkus 7 November 2019 в 11:13
поделиться
Другие вопросы по тегам:

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