I was having issues before that when I went into program mode my keypad would do the code that was in my entry mode. Looking at it now, and with the little bit of experience I now have, this could probably be done with one keypad listener.
Could, and should. The program knows whether it is in program mode or entry mode. The listener should (have), too.
The LEDs are just named whatever, I guess they could be BlueLED, GreenLED and RedLED.
Or ledPin1, ledPin2, and ledPin3. My point was that if you are going to number the second and subsequent instances, you should number the first one, too.
These technically are not the same thing; Password2 is an Array and password2 is a password.
But password and password2 are both instance of the Password class. I expect to see them both numbered or named in such a way that they don't need to be numbered.
If I were to have gone: char password2[5]; I would have got an error since password2 has already been defined as a password.
However, if you'd named the char array variable pass2AsArray, there would have been no such problem, and later in the code, password2 and pass2AsArray are clearly different things.