Здравствуйте! Помогите, пожалуйста! Зачем объявлять переменные экземпляра, если и без них работает? Вот пример:
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);
}
}
dog.nameилиcatdog.hуже после того как создал объекты. То есть при вызове конструктора у тебя выведутся на печать переданные параметры, но они не сохранятся в объектах класса - их там просто нет. Именно для того чтобы они там были их и объявляют.