A class is best described as a 'user defined type with an attitude'.
A 'standard' type is like INTEGER. When you define a variable as INTEGER, it is allotted 2 bytes in memory, and store a value from -32??? to 32???. (I forget the exact number -- it matters not)
A 'user defined type' is like a record. A single type that contains multiple fields. Think of it like a form you fill out... there are lots of different 'variables' on the sheet, but hundreds of the forms are all the same. SO instead of having an array for each of the fields, you have a user defined type that contains them all and then have an array of that type.
A class is sort of like that, but in addition to containing data, it can also contain CODE. It's hard to really explain well, you basically have to try it, and then you realise how much incredible potential it has. Say the record type is information for a bank account. With a class, you could make that information private to the class so that other parts of the program can't access it. Then you have a procedure called 'deposit' and another called 'withdraw' that take money in and out, and the withdrawl procedure checks if there's enough left, and returns an error message if there isn't.
It's called 'safe' programming. If you let any part of your program just screw with the values in the bank account information, a mistake could mean you get a negative balance.
That's a lousy example, because you're probably not writing banking machines in your compsci class... but it's useful for other things too. It's just good practice to have the class itself checking its variables and doing processing that pertains to itself, as opposed to having that code clog up other parts of your program.