2

对不起,我知道这个答案很明显,但我想我只是慢了。谁能给我一个实例变量和构造函数的明确定义?

实例变量:
您的类将需要一个名为 numbers 的实例变量,它是一个一维数组。数组的大小将由构造函数确定。您可能会或可能不会发现拥有其他实例变量很有用。

构造函数:
您将编写两个构造函数。一个构造函数将是没有参数的默认构造函数。它将创建一个包含 10 个 int 的数组,并将数组的每个元素设置为 42。

第二个构造函数将接受一个参数,它将是一个 int 数组。此构造函数将创建一个与参数大小相同的实例数组,然后将整数从参数复制到实例数组。


我什至不知道如何开始。

4

3 回答 3

5

实例成员只是属于类对象的变量,只要它不是静态变量!静态变量,严格来说属于类而不是对象,构造函数只是你用来创建和初始化对象的特殊方法。它也是您班级的名称。

所以你想要的是

class WhateverYourClassIs
{
   int[] members;
   public WhateverYourClassIs()//constructor. 
   {
    members = new int[10] ;
    }
   public WhateverYourClassIs(int n) //overloaded constructor.
   {
     members = new int[n] ;
   }
}

正如你在上面的例子中看到的,像方法这样的构造函数可以被重载。重载意味着签名不同。一个构造函数不带参数,另一个只带一个 int 参数。

于 2012-11-07T00:47:36.873 回答
2

构造函数是生成该类实例的类的一部分。它与类命名相同,并且没有返回类型。例如:

public class Foo{
  public Foo(){
      System.out.println("Hi from the constructor!!");
   }
}

实例字段是类的每个实例的局部变量。您可以拥有公共、受保护或私有实例字段。私有实例字段对外界“隐藏”,只有实例本身可以访问它。使用.运营商访问公共的。例如:

公共类 Foo{ 公共 int x; 私人int y;}

Foo foo = new Foo(); //Thats a call to the constructor Foo()
foo.x = 1;
foo.y; //Error can't access private variables from outside the class

对于你的情况,你会想要

class Name{
   int[] numbers;
   public Name(){
      numbers = new int[10];
   }
   public Name(int n){
      numbers = new int[n];
   }
}

在这里,您重载构造函数(就像方法一样)并创建一个数组,在这种情况下,它是int一个固定长度的 s 的列表。

于 2012-11-07T00:45:51.787 回答
1
public class MyClass{
    int numbers[];
    MyClass(){
        numbers = new int[10];
        for (int i = 0; i < numbers.length; i++) {
                numbers[i] = 42;
        }
    }
    MyClass(int[] array){
        numbers = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            numbers[i] = array[i];
        }
    }
}
于 2012-11-07T01:05:47.893 回答