AND and OR both require two boolean expressions in order to evalute. NOT only requires one and is commonly referered to as a unary operator. On its most basic level NOT inverts a boolean value or expression. So if originally it was true it would become false and visa versa. Lets look at an example

NOT (Name = "Bob")

This would return true for any name apart from Bob! The brackets are nessesary to ensure that we invert the whole expression. Unary operators have a higher precedence than other operators so if we did not put the brackets in NOT would be applied to just Name. As Name is a string and not a boolean our code would not compile.

Read the section on operator precedence for more information.

Java writes NOT as a !. So NOT(name="bob") becomes !(name.equals("bob").