SAI TEJ99 Ответов: 1

Почему я получаю null в своем выводе на java


import java.lang.*;
import java.util.Scanner;

class ArrObj
{
	public int rollno,clss;
	public String name,section;
	Scanner s = new Scanner(System.in);
	
	public void getdata()
	{
		System.out.println("ENTER NAME");
		name = s.next();
		System.out.println("ENTER CLASS");
		clss = s.nextInt();
		System.out.println("ENTER Section");
		section = s.next();
		System.out.println("ENTER ROLL NO");
		rollno = s.nextInt();
	}
	
	public void putdata()
	{
		System.out.println("THE NAME IS : "+name+" THE CLASS IS : "+clss+" THE SECTION IS : "+section+" THE ROLL NUMBER IS :"+rollno);
	}

}

public class mycode
{
	public static void main(String args [])
	{
		int x,i;
		Scanner t = new Scanner(System.in);
		
		
		System.out.println("ENTER THE SIZE");
		
		x=t.nextInt();
		
		ArrObj[] itr = new ArrObj[x];
		
		System.out.println("ENTER THE DETAILS :");
		
		for(i =0;i<x;i++)
		{
			itr[i] = new ArrObj();
			itr[i].getdata();
		}
		
		for(i=0;i<x;i++)
		{
			itr[i] = new ArrObj();
			itr[i].putdata();
		}
	
	}
	
}


РЕЗУЛЬТАТ, КОТОРЫЙ Я ПОЛУЧАЮ, ТАКОВ :
THE NAME IS : null THE CLASS IS : 0 THE SECTION IS : null THE ROLL NUMBER IS :0


Что я уже пробовал:

я не знаю, что делать, пожалуйста, помогите мне. спасибо

1 Ответов

Рейтинг:
11

OriginalGriff

Посмотрите на свой код:

for(i=0;i<x;i++)
{
    itr[i] = new ArrObj();
    itr[i].putdata();
}
Каждый раз в цикле вы создаете совершенно новый пустой объект и перезаписываете существующий. Затем вы пытаетесь распечатать его - пустое - содержимое и удивляетесь, что его нет ... хорошо... пустой.

Удалите строку, которая создает новый объект и перезаписывает элемент массива из этого цикла, и посмотрите, что произойдет.


SAI TEJ99

ДА, ЭТО СРАБОТАЛО, СПАСИБО :D

OriginalGriff

Всегда пожалуйста!

(Только не кричи. Использование всех заглавных букв считается криком в интернете и грубостью (использование всех строчных букв считается ребячеством). Используйте правильную заглавную букву, если хотите, чтобы вас воспринимали всерьез.)