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

类中重载的构造函数

邢法
2023-03-14
    null

我不太确定如何处理我的代码,以下是我得到的:

public class Person {
    int age;
    Name aPersonHasAName;
    Name newPerson = new Name();

    public Person(String firstName, String middleName, String lastName, int age) {
        newPerson.firstName = firstName;
        newPerson.middleName = middleName;
        newPerson.lastName = lastName;
    }

    public Person(Name aPersonHasAName, int age) {

    }

    public void details() {
        System.out.println(aPersonHasAName + " age: " + age);
    }

}

我只是不知道我应该打什么。我相信我已经完成了第一个重载构造函数,但我对此还是新手。

那么,我应该做些什么来使重载构造函数工作呢?

public class PersonTester {
        public static void main(String[] args) {
            Person person1 = new Person("a1", "b1", "c1", 11);
            Person person2 = new Person(new Name("a2", "b2", "c2"), 22);
            Person person3 = new Person(new Name("a3", "c3"), 33);
            Person person4 = new Person(new Name("a4"), 44);
            Person person5 = new Person(new Name(), 55);
            System.out.println(person1.details());
            System.out.println(person2.details());
            System.out.println(person3.details());
            System.out.println(person4.details());
            System.out.println(person5.details());
    }
}
public Name(String firstName, String middleName, String lastName) {
    this.firstName = firstName;
    this.middleName = middleName;
    this.lastName = lastName;
}

public Name(String firstName, String lastName) {
    this(firstName, "", lastName);
}

public Name(String firstName) {
    this(firstName, "", "");
}

public Name() {
    this("", "", "");
}

public String getLastName() {
    return lastName;
}

public String getMiddleName() {
    return middleName;
}

public String getFirstName() {
    return firstName;
}

public String getFullName(String nameString) {
    StringBuilder build = new StringBuilder();
    build.append(nameString);
    build.deleteCharAt(nameString.length() - 1);
    build.insert(0, build.hashCode());
    return build.toString();
}

}

我对Java和面向对象编程非常陌生。

共有1个答案

郑博厚
2023-03-14

到目前为止还好。但最终您会达到复制相当一部分代码的地步。

构造函数

公共人物(字符串名、字符串名、字符串名、整数名){

public Person(String lastName, int age) {
   this(null, null, lastName, age); /*calls the other constructor*/
}
 类似资料:
  • 本文向大家介绍C++中构造函数重载,包括了C++中构造函数重载的使用技巧和注意事项,需要的朋友参考一下   当类中没有定义构造函数时,C++编译器自动提供无参构造函数和拷贝构造函数   当类中定义了任意的拷贝构造函数,C++不提供无参构造函数。 系统自动提供的构造函数   无参构造函数      函数体为空   拷贝构造函数      简单的进行成员变量的值复制      Test t1;    

  • 本文向大家介绍解析C++中构造函数的默认参数和构造函数的重载,包括了解析C++中构造函数的默认参数和构造函数的重载的使用技巧和注意事项,需要的朋友参考一下 C++构造函数的默认参数 和普通函数一样,构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。 【例】 程序运行结果为: 程序中对构造函数的定义(第12-16行)也可以改写成参数初始化

  • 假设我们有以下简单的代码: 这段代码使用clang编译并打印“T”,但使用gcc我们有以下错误: 我的问题是哪个编译器有bug,gcc还是叮当声?

  • 为什么在派生类构造函数中调用超类构造函数时id的值为0?当创建子对象时,什么时候在堆中为该对象分配内存?在基类构造函数运行之后还是之前?

  • 问题内容: 有一些类似的话题,但我找不到一个有足够答案的。 我想知道Java中构造函数重载的最佳实践是什么。关于这个问题我已经有了自己的想法,但我想听听更多的建议。 我指的是简单类中的构造函数重载和继承已重载类(意味着基类具有重载构造函数)时的构造函数重载。 问题答案: 虽然没有“官方指导方针”,但我遵循亲干原则。使重载构造函数尽可能简单,最简单的方法是它们只调用this(…)。只需要检查一次参数