Здравствуйте! Помогите, пожалуйста! Зачем объявлять переменные экземпляра, если и без них работает? Вот пример:
public class Artifact {
static int count = 0;
String name;
int h;

 public Artifact(){
     count++;
     System.out.println(count);
 }
  public Artifact(String name){
     count++;
     System.out.println(count + ", " + name);
 }
   public Artifact(String name, int h){
     count++;
     System.out.println(count + ", " + name + ", " + h);
 }
    public static void main(String[] args) {
        Artifact cat = new Artifact();
        Artifact dog = new Artifact("dog");
        Artifact catdog = new Artifact("catdog", 15);

    }
}
И вот без них.
public class Artifact {
static int count = 0;


 public Artifact(){
     count++;
     System.out.println(count);
 }
  public Artifact(String name){
     count++;
     System.out.println(count + ", " + name);
 }
   public Artifact(String name, int h){
     count++;
     System.out.println(count + ", " + name + ", " + h);
 }
    public static void main(String[] args) {
        Artifact cat = new Artifact();
        Artifact dog = new Artifact("dog");
        Artifact catdog = new Artifact("catdog", 15);

    }
}