There are certain classes of IPs that are considered private and "not routable", including all of 10.0.0.0 - 10.255.255.255, 192.168.0.0 - 192.168.255.255, and 172.16.0.0 - 172.31.255.255.
Often the subnet masks for these ranges will line up with old class boundaries, but they don't have to. Consumer equipment that you use in your home will often use a /24 (255.255.255.0) by default, even if they use an address in the 10.x.x.x range. Part of the reason for this is protection in case the device is brought into a larger network, with a larger subnet, where the device IP may conflict with something else. This give a kind of protection for that network.
Larger networks also often are divided up into smaller logical groups called vlans. These vlans may need to occupy the same large address space, but still have distinct network and broadcast addresses. So I might set up a vlan using 10.1.0.0 for the network address and set a broadcast address of 10.1.255.255 by using 255.255.0.0 for the subnet mask. Then I can have a different vlan starting 10.2.0.0 that will be separated from the first network. You can get specific about how much of an address is used for the network and how much is used for the host.
Aside from all that, with IPv4 space filling up, most of the large blocks have now been broken up, and we don't really talk about class A,B,C,D any more anyway.
First, understand that any idea of network classes lost its relevance sometime in the mid 1990's. Protocols where classes were significant have versions that accept subnet masks as additional parameters and do not care about what class an IP address is in.
There are three ranges of private IP addresses, and one for each class, but the class doesn't have any meaning anymore, unless you are using an ancient protocol that doesn't let you specify a subnet mask with IP addresses. What does have meaning is the subnet associated with each "class":
RFC1918 name IP address range subnet mask
24-bit block 10.0.0.0 - 10.255.255.255 /8 or 255.0.0.0
20-bit block 172.16.0.0 - 172.31.255.255 /12 or 255.240.0.0
16-bit block 192.168.0.0 - 192.168.255.255 /16 or 255.255.0.0
If your company is really distributing private addresses to customers (this is called Carrier Grade NAT), then you are stuck with what your ISP provides as far as the interface where your computer or network connects to the ISP.
Second, your router has two interfaces. One faces the IP and receives an IP from your ISP's DHCP server. The other is facing your network and completely up to you what you do with. Now, if you are going to reuse any addresses your ISP is using, then you will have to juggle some complex NAT rules. A consumer-level router may not support such complex NAT rules - a Linux PC with iptables
can do it but it's difficult to set up.
So, it is possible, but usually a lot easier to just select a range your ISP is not using. It doesn't matter which one. 10.0.0.0/8 is typically what businesses choose by convention, but it is just a convention.
Now, with the right NAT setup, you could pick any IP range out of thin air and use it on your home network. However, if your configuration has an error, traffic destined for your home network may go to external hosts instead. The above "private" IP ranges are agreed to be "non-routable" - if they happen to make it to your ISP, your ISP is supposed to drop them. With carrier-grade NAT being an exception of course. So if you use a private IP range that your ISP is not using, it protects you from a consequence of accidental misconfiguration.
Best Answer
There are no classes, they were deprecated in 1994 (seriously, that was 18 years ago as of writing this). Your teacher should be fired for even mentioning them (outside a history class) as it will only confuse you when you learn how networks actually work.
Networks are subnetted using CIDR (and expressed in CIDR notation). While the old class system maps to particular CIDR subnets, it's a terrible concept. In short, try to forget what you've already learned and dive into How does IPv4 Subnetting Work?