当前位置: 首页 > 知识库问答 >
问题:

java“void”和“non void”构造函数

陆甫
2023-03-14

我用java编写这个简单的类只是为了测试它的一些特性。

public class class1 {
    public static Integer value=0;
    public class1() {
       da();
    }
    public int da() {
        class1.value=class1.value+1;
        return 5;
    }
    public static void main(String[] args) {
       class1 h  = new class1();
       class1 h2 = new class1();
       System.out.println(class1.value);
    }
}
public class class1 {
    public static Integer value=0;
    public void class1() {
        da();
    }
    public int da() {
        class1.value=class1.value+1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h  = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value);
    }
}

0

那么为什么当我在构造函数方法声明中使用void时,类的静态字段不再改变了呢?

共有1个答案

汪晨
2023-03-14

在Java中,构造函数不是方法。它只有类的名称和特定的可见性。如果它声明返回一些东西,那么它就不是构造函数,即使它声明返回void也不是。注意这里的区别:

public class SomeClass {
    public SomeClass() {
        //constructor
    }
    public void SomeClass() {
        //a method, NOT a constructor
    }
}

此外,如果类没有定义构造函数,那么编译器将自动为您添加默认构造函数。

 类似资料:
  • 本文向大家介绍Java构造函数,包括了Java构造函数的使用技巧和注意事项,需要的朋友参考一下 构造函数与方法相似,但在以下方面有所不同。 它们没有任何返回类型。 构造函数的名称与类的名称相同。 每个类都有一个构造函数。如果我们未为类明确编写构造函数,则Java编译器将为该类建立默认构造函数。 每次创建一个新对象时,将至少调用一个构造函数。 一个类可以具有多个构造函数。 示例 输出结果

  • 问题内容: 我开始学习JAXB,所以我的问题可能很愚蠢。现在我有了类,想要生成XML Schema。在执行此指令后,我得到了异常 IllegalAnnotationExceptions …没有无参数的默认构造函数。 是的 我的课程没有默认的无参数构造函数。太容易了 我有类与包可见的构造函数/ final方法和偏离路线的参数。我应该怎么做-创建一些特定的momemto / builder类或将我的构

  • 问题内容: 什么时候应该使用构造函数,什么时候应该使用静态方法? 您能用小片段解释一下吗?我略读了一些线程,但是我仍然不清楚。 问题答案: 当您只想返回该类型的新对象并且希望简单时,请使用公共构造函数。 一个很好的例子是StringBuilder,因为它是可变的,您可能每次都想要一个新对象。 当您可能想重用对象(尤其是不可变的对象),返回子类或描述结构时,请使用静态因子方法。一个很好的例子是Enu

  • 我用java编写了这个简单的类只是为了测试它的一些特性。 输出为: 2. 但在此代码中: 这段代码的输出是: 0 那么,当我在构造函数方法声明中使用void时,类的静态字段为什么不再改变?

  • 我是Java的新手,正在处理一个家庭作业问题。该问题指定使用一个构造函数创建一个Temperature类,该构造函数接受华氏温度(作为double)并将其存储在字段中。setFahrenheit方法接受一个华氏温度(以双倍数形式),并将其存储在字段中。 这在我看来是多余的。setFahrenheit方法不是和构造函数完全一样吗?

  • 所以,我正在做一个家庭作业,我很难遵循一些指示,我把作业贴在下面: 创建一个由五个类组成的层次结构,加上一个作为变量包含在里面的类: Person有四个字符串变量:姓名,地址,电话,电子邮件 学生是Person的子类,有一个额外的int变量状态,其值为1,2,3或4,代表大一,大二,大三,大四 MyDate有三个int变量,分别为年、月和日 员工是Person的子类,有一个String变量offi