Hasta donde tengo conocimiento, java no compara los strings con los signos habituales de comparación, o sea, no funciona el ==. En su lugar, utiliza la función compareTo() o compareToIgnoreCase(), que es lo mismo pero ignorando mayúsculas o minúsculas:Código: Javaif(color.compareToIgnoreCase("blanco")==0) { this.color=color;}
Si puedes utilizar == para comparar cadenas, pero solamente cuando les asignas un valor literalCódigo: JavaString c1 = "hola";String c2 = "hola";if ( c1 == c2) System.out.println("Si son iguales"); El problema viene cuando les asignas el valor como objetosCódigo: JavaString d1, d2;d1 = "hola";d2 = new String("hola");if ( d1 == d2 ) System.out.println("Si son iguales");else System.out.println("No son iguales"); if ( d1.equals(d2) ) System.out.println("Si son iguales");else System.out.println("No son iguales");