System is the name of a class (java.lang.System) and follows normal conventions.
out is a static field. This is conventionally named, but it's quite rare to see public fields for anything other than constants.
The type of out is PrintStream, and println() is just a method on PrintStream - again, conventionally named.
It may help (in terms of understanding) to break things up:
PrintStream outputStream = System.out; // Access to the out field
outputStream.println(); // Just a method call
Now as for why you have to use a lower case 'o' and a lower case 'p' in the code System.out.println() - that's just because Java is case sensitive, and the names are out and println(), not Out and Println(). They could have been named in the latter way, but that would violate normal Java naming conventions.