我创建obj变量时不调用构造函数

时间:2016-07-27 18:14:04

标签: java class object methods constructor

class add{

add(){
    int a=0;
    int b=0;
}
void display()
{ int s;
    s=a+b;
    System.out.println(s);
}
}
class main{
        public static void main(String arg[])
      {
            add so=new add();
            so.display();
           }

}
  

当我运行它时,显示在定义s时未定义a,b。   当display()函数正常工作时,不会调用默认构造函数。

2 个答案:

答案 0 :(得分:0)

您的代码无效,因为ab是构造函数的局部变量。因此,它们无法在构造函数外部访问。

使用以下代码解决您的问题。

class Main{
    public static void main(String[] args)
    {
        Add so=new Add();
        so.display();
    }
}

class Add{
    int a, b;

    Add(){
        a=0;
        b=0;
    }

    void display()
    {
        int s;
        s=a+b;
        System.out.println(s);
    }
}

并使用类命名的java命名约定。

答案 1 :(得分:0)

class add{
 int a;
 int b;

add(){

}
void display()
{ int s;
    s=a+b;
    System.out.println(s);
}
}
class main{
        public static void main(String arg[])
      {
            add so=new add();
            so.display();
           }

这样做。为显示方法设置 a b 。调用构造函数时, a b 将自动初始化为 0
你正在做的是在构造函数中声明 a b 。 所以它们的范围将取决于构造函数。