コンストラクタについて3つ質問させて下さい

1. アクセス修飾子は基本的にpublicでよいでしょうか?

2. オーバーロードする際は、以下のような順に記述すればよいでしょうか?
public ClassA(int num) {
_this.num = num;
}
public ClassA(int num, String name) {
_this.num = num;
_this.name = name;
}

3. コンストラクタ内でif文などの制御構文を使ってもよいでしょうか?
public ClassA(int num) {
_if (num < 0) {
__num = 0;
_}
_this.num = num;
}

複数の質問で恐縮ですがよろしくお願いします