[英]Print specific array object with method
我得到了一系列物体。 从另一种方法中,我想从数组中打印一个对象,此方法的输入必须是一个整数,它表示对象在数组中的索引。 我无法从printObject()到达数组。 我该怎么做呢?
public static void main(String[] args) {
Object []obj = new Object[2];
printObject(1);
}
public static void printObject(int i){
if (i == 0){
System.out.println(obj[0].toString());
}
if (i == 1){
Systen.out.println(obj[1].toString());
}
}
由于它是在main
方法的块中声明的,因此仅在其中知道。 使它成为类成员或将其作为参数传递。
例:
private int memberInt;
private void foo() {
memberInt = 5; // :)
int a = 7;
//..
a = 9; // :)
}
private void bar() {
a = 10; // :_(
memberInt = 10; // :)
}
您可以将数组作为参数传递给printObject
(并简化):
public static void main(String[] args) {
Object[] obj = new Object[2];
printObject(obj, 1);
}
public static void printObject(Object[] objects, int index){
if (index == 0 || index == 1) {
System.out.println(objects[index].toString());
}
}
变量obj
的范围仅限于main方法,在printObject
方法中printObject
用。 因此,要访问Object[]
类型的变量, printObject
Object []obj
设为类成员,这样该成员将在整个类中可用,或者可以作为参数发送给printObject
方法。
检查以下代码:
public class AccessingMembers
{
static Object []obj = null;
public static void main(String[] args) {
obj = new Object[2];
obj[1] = new Integer(10);//for example
printObject(1);
}
public static void printObject(int i){
if (i == 0){
System.out.println(obj[0].toString());
}
if (i == 1){
System.out.println(obj[1].toString());
}
}
}
如果运行代码,您将得到10作为答案。
声明一个整个类都可以访问的全局数组,或者将该数组作为方法的参数传递给它,以便它可以访问它。
Object [] obj = new Object [2]; 是一个方法变量,其范围仅适用于该方法。
这里使用上面的语句还有另外一件事,您仅创建了对象的两个引用,但没有创建实例。
//创建实例
obj [0] = new Object();
obj [1] = new Object();
尝试这个,
类测试{
静态Object [] obj = new Object [2];
public static void main(String[] args) {
printObject(1);
}
public static void printObject(int i) {
obj[0]=new Object();
obj[1]=new Object();
if (i == 0) {
System.out.println(obj[0].toString());
}
if (i == 1) {
System.out.println(obj[1].toString());
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.