Сначала вы реализуете интерфейс Comparable для своего класса питомцев и добавляете метод сравнения к классу питомцев, который возвращает целое число (+ ve, если этот питомец больше, чем у другого питомца) в противном случае.
class Pet implements Comparable{
String name;
int weight;
int height;
public int compareTo(Pet otherPet){
if(weight > otherPet.weight){
return 1;
}
else if(weight = otherPet.weight){
if(height > otherPet.height){
return 1;
}
}
else{
return -1;
}
}
}
Реализация этого интерфейса позволяет вам использовать эту строку, которая сортирует ваш массив
Collections.sort(Pets);
Свойства зависимости являются свойствами классов, которые происходят из DependencyObject, и они являются особенными в этом вместо того, чтобы просто использовать отступающее поле для хранения их значения, они используют некоторые вспомогательные методы для DependencyObject.
самая хорошая вещь о них состоит в том, что у них есть вся инфраструктура для встроенной привязки данных. Если Вы свяжете что-то с ними, то они уведомят его, когда они изменятся.
http://techpunch.wordpress.com/2008/09/25/wpf-wf-what-is-a-dependency-property/ дает хорошее объяснение свойств зависимости и в контексте WF и в WPF.
выборка:
Ключевой пункт †“Значение Свойств Зависимости Разрешен
, конечная цель свойства зависимости, как любое свойство, должна управлять состоянием. Но в отличие от нормальных свойств .NET, значение локального свойства не хранится в переменной экземпляра.
Вместо этого свойства зависимости регистрируются в платформе свойства зависимости, и базовое значение свойства разрешено †“значение, что значение определяется платформой свойства зависимости на основе правил, определенных регистрацией свойства.