there is no private/public tokens concept in Ethereum. You can have a pre-sale, a locking period, etc. but eventually what you're doing is creating a sub-cryptocurrency and giving some of the token/coin you're creating to people. After that your contract defines a time where transactions are allowed, or you can create a switch, but I see 0 reasons to keep the switch OFF.
I am an Ethereum developer thank you. I did not talk about private tokens I said the offering is not public. The company can distribute the tokens to their employees as a liquid equity and promise they will redeem them for a certain equity or % of revenue. That's not an ICO