对不起,我知道这个答案很明显,但我想我只是很慢。任何人都可以给我一个实例变量和构造函数的明确定义吗?
实例变量:
您的类需要一个名为numbers的实例变量,它是一维数组。数组的大小将由构造函数确定。您可能会或可能不会发现其他实例变量很有用。
构造:
你将编写两个构造函数。
一个构造函数将是没有参数的默认构造函数。它将创建一个包含10个int的数组,并将数组的每个元素设置为42.
第二个构造函数将接受一个参数,该参数将是一个int数组。此构造函数将创建与参数大小相同的实例数组,然后将参数中的整数复制到实例数组。
我不知道如何开始。
答案 0 :(得分:5)
实例成员只是属于类对象的变量,只要它不是静态变量即可!一个静态变量,严格来说属于类而不是对象, 构造函数只是您调用以创建和初始化对象的特殊方法。它也是您班级的名称。
所以你想要的是
class WhateverYourClassIs
{
int[] members;
public WhateverYourClassIs()//constructor.
{
members = new int[10] ;
}
public WhateverYourClassIs(int n) //overloaded constructor.
{
members = new int[n] ;
}
}
正如您在上面的示例中所看到的,构造函数(如方法)可以重载。通过重载意味着签名是不同的。 一个构造函数不带参数,另一个构造函数接受一个int的参数。
答案 1 :(得分:2)
构造函数是生成该类的实例的类的一部分。它的命名与类相同,没有返回类型。例如:
public class Foo{
public Foo(){
System.out.println("Hi from the constructor!!");
}
}
实例字段是类的每个实例的本地变量。您可以拥有公共,受保护或私有实例字段。私有实例字段与外界“隐藏”,只有实例本身才能访问它。使用.
运算符访问公共号码。例如:
public class Foo { public int x; 私人的; }
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
的列表。
答案 2 :(得分: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];
}
}
}