【问题标题】:How can i use a constructor variable in other methods of same class?如何在同一类的其他方法中使用构造函数变量?
【发布时间】:2016-04-08 08:06:14
【问题描述】:

我有一个带有变量 initial_Age 的构造函数

public Person(int initial_Age) {
    if(initial_Age<0){
        age=0;
    }

我想在其他方法中使用 initial_Age 但它给出了错误(变量未初始化)

public void amIOld() {
    if(this.initial_Age>0){
        age=this.initial_Age;
    }

我该怎么办?

【问题讨论】:

  • 那是local variable,它只能在方法/构造函数中声明的地方使用。使用instance Variable 可以访问任何构造函数或方法或任何实例,只要它是public

标签: java


【解决方案1】:

尝试做这样的事情:

private int initial_Age;

public Person(int initial_Age) {
 this.initial_Age =initial_Age;
  if(initial_Age<0){
    age=0;
 }

您可以在Person 类中的任何地方使用initial_Age

【讨论】:

    【解决方案2】:

    回答你的问题。

    public class Person {
        private int age;
    
        public Person(int initialAge) {
            this.age = Math.max(initialAge, 0);
        }
    
        public boolean amIOld() {
            return this.age > 0;
        }
    }
    

    这样一个人的年龄是不变的。你需要改变逻辑。

    【讨论】:

    • 我希望您会发现更改后的答案更有帮助。
    猜你喜欢
    • 2015-05-06
    • 2016-01-06
    • 2017-07-16
    • 2017-11-08
    • 1970-01-01
    • 2013-09-11
    • 2017-04-01
    • 2018-12-21
    • 2012-11-10
    相关资源
    最近更新 更多