Java实例变量
我正在使用Codecademy学习Java。我正试图编写代码,使一个对象在这个例子中,一个3岁的狗名为Spike,在n条腿上运行,其中n=年龄。我尝试了暴力调试,但没有成功。我应该如何更改行如何更改以使代码正常工作Java实例变量,java,Java,我正在使用Codecademy学习Java。我正试图编写代码,使一个对象在这个例子中,一个3岁的狗名为Spike,在n条腿上运行,其中n=年龄。我尝试了暴力调试,但没有成功。我应该如何更改行如何更改以使代码正常工作 class Dog { public Dog(int dogsAge) { int age = dogsAge; } public void bark() { System.out.println("Woof!");
class Dog {
public Dog(int dogsAge) {
int age = dogsAge;
}
public void bark() {
System.out.println("Woof!");
}
public void run(int feet) {
System.out.println("Your dog ran " + feet + " feet!");
}
public static void main(String[] args) {
Dog spike = new Dog(3);
spike.bark();
spike.run(this.age); // How to change this?
}
}
尝试创建变量int age并在构造函数中初始化它,如下所示:
class Dog {
int age;
public Dog(int dogsAge){
this.age = dogsAge;
}
尝试创建变量int age并在构造函数中初始化它,如下所示:
class Dog {
int age;
public Dog(int dogsAge){
this.age = dogsAge;
}
你们班需要
-为年龄变量添加存储
-在construcor中设置该值
-为您的主要功能提供访问它的方式
class Dog {
private int age; //storage for the age value within the instance
public Dog(int dogsAge){
this.age = dogsAge; // set the value
}
// provide a way to access the age
public int getAge() {
return this.age;
}
public void bark(){
System.out.println("Woof!");
}
public void run(int feet) {
System.out.println("Your dog ran " + feet + " feet!");
}
public static void main(String[] args) {
Dog spike = new Dog(3);
spike.bark();
spike.run(spike.getAge()); // retrieve the age and use it
}
}
你们班需要
-为年龄变量添加存储
-在construcor中设置该值
-为您的主要功能提供访问它的方式
class Dog {
private int age; //storage for the age value within the instance
public Dog(int dogsAge){
this.age = dogsAge; // set the value
}
// provide a way to access the age
public int getAge() {
return this.age;
}
public void bark(){
System.out.println("Woof!");
}
public void run(int feet) {
System.out.println("Your dog ran " + feet + " feet!");
}
public static void main(String[] args) {
Dog spike = new Dog(3);
spike.bark();
spike.run(spike.getAge()); // retrieve the age and use it
}
}
Dog.java:25:错误:非静态变量无法从静态上下文spike.runthis.age引用此变量;//如何更改此选项?^1 errorDog.java:25:error:非静态变量无法从静态上下文spike.runthis.age引用该变量;//如何更改此选项?^1错误通过在构造函数中声明变量age,它仅在构造函数中可见。这是作用域的一个例子。通过在构造函数中声明变量age,它只在构造函数中可见。这是一个作用域的例子。如果我不添加public int getAge{return This.age;},变量dogsAge会发生什么?如果没有dogsAge函数,它是完全不可访问的吗?在我上面的代码中,它是不可访问的,因为主函数在Dog类中。但是,如果主函数在另一个类中,那么如果没有getAge,它将无法访问,因为'age'属性被声明为'private'。您可以在不使用getAge函数的情况下,通过使用“public int age”来访问它,但是这通常被认为是不好的做法。如果我不添加public int getAge{return this.age;},变量dogsAge会发生什么情况?如果没有dogsAge函数,它是完全不可访问的吗?在我上面的代码中,它是不可访问的,因为主函数在Dog类中。但是,如果主函数在另一个类中,那么如果没有getAge,它将无法访问,因为'age'属性被声明为'private'。您可以在不使用getAge函数的情况下,通过使用“public int age”来访问它,但是这通常被认为是不好的做法。