微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于 Java 构造函数的练习

如何解决关于 Java 构造函数的练习

我有一个练习,显然是在向我们询问基本概念。但是我找不到任何信息,或者至少我不确定我要搜索什么。所以我有一个小班级,我需要评论 3 个不同的构造函数。它看起来像这样:

class Person{
      private String name;
      private ArrayList<String> pseudos;
      private String email;

//For me this one isn't a problem,it initialize a name & a mail with the two parameters and I believe the tricky part is this Array. I'm not sure but as far as I kNow it's okay to initialize the Array whithout getting him through parameter... Maybe I'm wrong.
public Person(String aName,String aEmail){
       name = aName;
       pseudos = new ArrayList<String>();
       email = aMail;
}

//It seems to be the same explanation than the first one.
public Person(){
       pseudos = newArrayList<String>();
}

//Apart from the uppercase I thinks this one is good,nothing is wrong.
public Person(String aName,String aMail,ArrayList<String> manyPseudos){
       name = aName;
       pseudos = new ArrayList<String>();
       if(pseudos != null)
       {
            Pseudos.addAll(manyPseudos); //The uppercase here should be the problem
       }
       mail = aMail;
  }
}

当然我试图通过我的课来弄清楚它,但我没有找到任何东西,所以我认为这是一个基于逻辑的练习......但我缺乏这种逻辑,我真的很想至少真正地理解这部分,因为它是非常基础的,我将不得不对其进行很多操作。

再次感谢您的指导和时间。

解决方法

我相信棘手的部分是这个数组。我不确定,但据我所知,在不让他通过参数的情况下初始化数组是可以的......也许我错了。

首先,pseudos 是一个 ArrayList,而不是一个数组。这是两种不同的东西。

其次,pseudos 和其他变量一样是一个变量。这意味着您可以以与初始化任何变量相同的方式对其进行初始化:从另一个变量的值或直接从表达式。这里我们通过直接创建一个新的 pseudos 来初始化 ArrayList

Pseudos.addAll(manyPseudos); //这里的大写应该是问题

你的眼光不错。开头的 Psuedos 应该改为 pseudos。由于 Java 区分大小写,因此这是两个不同的事情。我们通常使用类名以大写开头,变量和函数以小写开头的约定。从理论上讲,您可以拥有一个名为 Psuedos 的类和一个名为 pseudos 的变量,但您必须在脑海中将它们分开。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。