60 likes | 145 Views
Learn about the importance of differentiating between equality testing and assignment operators in string and object comparison during programming. Avoid common mistakes and explore the nuances of identity testing versus content equality checks.
E N D
String and Object Comparison Comparison operator
Equality Testing vs. Assignment • The = = operator tests for equality:if (x = = 0) . . // if x equals zero • The = operator assigns a value to a variable:x = 0; // assign 0 to x • Don't confuse them.
String Comparison • Don't use = = for strings!if (input = = "Y") // WRONG!!! • Use equals method:if (input.equals("Y")) • = = tests identity, equals tests equal contents • Case insensitive test ("Y" or "y")if (input.equalsIgnoreCase("Y"))
public class StringExample { // instance variables - replace the example below with your own private String name; private String nickname; /** * Constructor for objects of class StringExample */ public StringExample() { // initialize instance variables name = "Robert"; nickname = name.substring(0,3); } public void displayNames() { if (nickname == "Rob") { System.out.println("The nickname is Rob"); } else { System.out.println("There is no nickname"); } }
Object Comparison • = = tests for identity, equals for identical content Rectangle cerealBox = new Rectangle(5, 10, 20, 30);Rectangle oatmealBox = new Rectangle(5, 10, 20, 30);Rectangle r = cerealBox; • cerealBox != oatmealBox, but cerealBox.equals(oatmealBox) • cerealBox == r • Note: equals must be defined for the class