Как многие другие ответили: Java не поддерживает пользовательскую перегрузку оператора.
Возможно, это не по теме, но я хочу прокомментировать некоторые вещи, которые я прочитал в некоторых ответах.
О читаемости. Сравнить:
Посмотрите еще раз! Какой из них более читабельен?
Язык программирования, который позволяет создавать пользовательские типы, должен позволять им действовать так же, как и встроенные типы (или примитивные типы).
Итак, Java нарушает фундаментальный принцип универсального программирования: Мы должны иметь возможность обменивать объекты встроенных типов с объектами определяемых пользователем типов. (Возможно, вам интересно: «Был ли он скажем, «объекты встроенного»? »Да, см. здесь .)
О конкатенации строк:
Математики используют symnol + для коммутативных операций на множествах. Поэтому мы можем быть уверены, что a + b = b + a. Конкатенация строк (в большинстве языков программирования) не учитывает эту общую математическую нотацию.
a := "hello"; b := "world"; c := (a + b = b + a);
или в Java:
String a = "hello"; String b = "world"; boolean c = (a + b).equals(b + a);
Дополнительно: обратите внимание, как в Java-равенстве и идентичности путают. Символ == (равенство) означает: a. Равенство для примитивных типов b. Проверка идентичности для пользовательских типов, поэтому мы вынуждены использовать функцию equals () для равенства. Но ... Как это связано с перегрузкой оператора? Если язык позволяет перегрузке оператора, пользователь может дать правильное значение оператору равенства.
Вы должны поддерживать переменную $ _SESSION после входа и выхода пользователя из системы. Вам нужно сохранить и сравнить user_id
и изменить запрос проверки голосов: $user_check_query = "SELECT * FROM users WHERE user_id=:user_id and votenow=:votenow";
Использовать bindparams чтобы добавить защиту от инъекции SQL.