How to make a particular role user and their content not accessible/viewable to other users?
Content Access

This module allows you to manage permissions for content types by role and author. It allows you to specifiy custom view, edit and delete permissions for each content type. Optionally you can enable per content access settings, so you can customize the access for each content node.

Video Tutorial
I think content access is only for content type nodes. So for the user page umm.... I can't think of anything of the top of my head. I will edit this if I can think of something. Perhaps the only solution is doing it with a custom module programmatically.

If you use pathauto you could make so the user page path is user/[user:role]/[user:name]
then you could use
Path Access

Path_access provides the means to restrict pages based on their path
alias - meaning you can lock out certain user role groups from whole
sections of a site using wildcards.

and lock them out from certain [user:role] paths.