Member 13900790 Ответов: 2

Может ли кто-нибудь сказать, как получить доступ к массиву classname в методе


package zen;
import java.util.*;
public class zen1
{
	public int id;
	public String name;
	public String email;
	public zen1(int id,String name,String email)
	{
		this.id=id;
		this.name=name;
		this.email=email;
	}
	public static void ze(zen1 s[])
	
	{
	
		for(zen1 t:s)
		{
			System.out.println(t.id+" "+t.name+" "+t.email);
		}
	}
	
	public static void main(String args[])
	{
		
		zen1[] s=new zen1[3];

		Scanner test=new Scanner(System.in);
		for(int i=0;i<s.length;i++)
		{
			s[i]=new zen1(test.nextInt(),test.nextLine(),test.nextLine());
			ze(s[i]);
		
		}
	}
}

What I have tried:

i am getting error in ze(s[i]) if i passed ze method as array type i can't able to access it showing error

2 Ответов

Рейтинг:
16

Manish K. Agarwal

согласно

public static void ze(zen1 s[])


Вам нужно назвать это так ze(s);
Если вы хотите передать один элемент, измените свой метод ze на

public static void ze(zen1 s)


но это требует изменений реализации, а также в боковой функции.


Member 13900790

если я использую public static void ze(zen1 s), Я не могу получить доступ к значениям массива в цикле for-each.

Manish K. Agarwal

затем объявите его как public static void ze(zen1 s[]) и измените свою логику

Рейтинг:
12

OriginalGriff

Это потому что вы объявили ze как принимающий параметр, представляющий собой массив zen1 предметы:

public static void ze(zen1 s[])
И вы пытаетесь пройти один-единственный путь. zen1 экземпляр метода:
s[i]=new zen1(test.nextInt(),test.nextLine(),test.nextLine());
ze(s[i]);
Измените определение метода, чтобы принять один экземпляр, или вызовите метод вне цикла и передайте весь массив:
for(int i=0;i<s.length;i++)
	{
		s[i]=new zen1(test.nextInt(),test.nextLine(),test.nextLine());
	}
ze(s);
Вы не хотите передавать весь массив внутри цикла, потому что у вас нет всех элементов, содержащих фактические экземпляры, пока цикл не будет завершен.


Member 13900790

не могли бы вы закодировать эту конкретную область и как она работает

OriginalGriff

Нет, потому что это ваша домашняя работа, и мы дали вам достаточно информации, чтобы сделать это самостоятельно.

Member 13900790

спасибо, что прояснили мои сомнения.и теперь я знаю, как это работает.