Создание объекта внутри метода Java

#java #oop #object #instance-variables

#java #ооп #объект #экземпляр-переменные

Вопрос:

 public static String[] Form() {
        Scanner Input=new Scanner(System.in); 
        String array[];
        array = new String[2];
        RegistrationForm RegisteredStudents = new RegistrationForm();
        for(int i=0; i<2; i  ){
            System.out.println("Enter Name");
            String name= Input.next();
            System.out.println("Enter Address");
            String address= Input.next();
            System.out.println("Enter E-Mail");
            String email= Input.next();
            System.out.println(i 1 " Student Registration complete");
            System.out.println("Your Rollnumber is " (i 1));
            int roll=i 1;
            String array[i]=new array(name,address,email,roll);
    }
return array;}
  

возможно ли создать объект внутри метода Java вместо его создания в основном методе? amp; может ли один объект использоваться для хранения разных данных в массиве?

Комментарии:

1. 1. Да, вы можете создавать объекты из любого метода, включая main. 2. Да, если «разные данные» имеют тот же тип данных, что и у объявленного вами массива.

2. new array(name,address,email,roll) — это не будет компилироваться. Вам нужно было бы создать класс с именем array , который должен был бы расширяться String — это невозможно, потому String что есть final .

3. Кстати. пожалуйста, следуйте соглашениям об именовании Java — имена переменных записываются в «нижнем регистре»

4. Вы используете массив для хранения различных свойств некоторой сущности, возможно, student . Вы должны создать класс Student с этими свойствами. Вам также следует изучить основы объектно-ориентированного программирования.

Ответ №1:

Да, вы можете создавать объекты в любом типе метода в Java.Итак, согласно вашему фрагменту кода, вы пытаетесь сохранить student с набором атрибутов в массиве.Для достижения этой цели, я думаю, лучшим способом является использование ArrayList, если вы не уверены в количестве учащихся, которое вы собираетесь зарегистрировать, но если вы точно знаете количество [это означает, что если вы можете указать размер массива], вы можете использовать массив.Но в обоих случаях сначала вам нужно иметь класс модели, включающий атрибуты student.После создания класса модели Student вы можете создать массив или тип Student типа ArrayList.Затем вы можете сохранить данные своего ученика в выбранном методе.

Пример:

Шаг 1: Создание класса модели Student

  public class Student {
         
        //Member variables
        private String name;
        private String address;
        private String email;
        private int roll;
    
        //Default constructor
        public Student(){}

       //Overloaded constructor
        public Student(String name, String address, String email, int roll) {
            this.name = name;
            this.address = address;
            this.email = email;
            this.roll = roll;
        }

        //Getters and Setters
        public void setRoll(int roll){
             this.roll = roll;
        }

        public int getRoll() {
            return roll;
        }
    
        public void setName(String name){
            this.name =name;   
        }
        public String getName() {
            return name;
        }
        public void setAddress(String address){
            this.address = address;
        }
       
        public String getAddress() {
            return address;
        }
         public void setEmail(String email){
            this.email = email;
         }
        public String getEmail() {
            return email;
        }

    //Better if you can also implement the toString() method in here
    }
  

Шаг 2: Реализация ArrayList или array

Реализация с использованием массива

 public class Form{

     public static void main(String[] args) {
            Scanner Input = new Scanner(System.in);
            //Creation of Student type array
            Student studentsArr[] = new Studnet[10]; //Considering there are only 10 Students to register
            for (int i = 0; i < 10; i  ) {
                System.out.println("Enter Name");
                String name = Input.next();
                System.out.println("Enter Address");
                String address = Input.next();
                System.out.println("Enter E-Mail");
                String email = Input.next();
                int roll = i   1;
                studentsArr[i] = new Student(name, address, email, roll);
                System.out.println(i   1   " Student Registration complete");
                System.out.println("Your Rollnumber is "   (i   1));
            }
        }
}


  

Реализация с использованием ArrayList

 public class Form{

     public static void main(String[] args) {
            Scanner Input = new Scanner(System.in);
            //Creation of Student type array
            List<Student> studentsList = new ArrayList<>(); //Doesn't know the students count ,because of that we are using a list
            int end = 0;//Terminating condition initial value
            int key = -1;
            do{
                key  ;
                System.out.println("Enter Name");
                String name = Input.next();
                System.out.println("Enter Address");
                String address = Input.next();
                System.out.println("Enter E-Mail");
                String email = Input.next();
                int roll = key   1;
                studentsList.add(new Student(name, address, email, 
roll));//Adding the new student to list
                 System.out.println(key   1   " Student Registration complete");
                System.out.println("Your Rollnumber is "   (key   1));
                System.out.println("press 0 to continue or -1 to end the process");
                end = input.nextInt();

            }while(end != -1);
      }
}


  

Ответ №2:

Что-то вроде этого помогло бы.

Я рекомендую вам использовать Arraylist вместо array, но я предполагаю, что это какая-то классовая работа, поэтому я не слишком сильно изменяю ваш пример.

 import java.util.Scanner;

class Customer {

    private String name;
    private String address;
    private String email;
    private int roll;

    public Customer(String name, String address, String email, int roll) {
        this.name = name;
        this.address = address;
        this.email = email;
        this.roll = roll;
    }

    public int getRoll() {
        return roll;
    }

    public String getName() {
        return name;
    }

    public String getAddress() {
        return address;
    }

    public String getEmail() {
        return email;
    }
}

class Scratch {
    public static void main(String[] args) {
        Scanner Input = new Scanner(System.in);
        Customer customers[] = new Customer[10];
        for (int i = 0; i < 2; i  ) {
            System.out.println("Enter Name");
            String name = Input.next();
            System.out.println("Enter Address");
            String address = Input.next();
            System.out.println("Enter E-Mail");
            String email = Input.next();
            System.out.println(i   1   " Student Registration complete");
            System.out.println("Your Rollnumber is "   (i   1));
            int roll = i   1;
            customers[i] = new Customer(name, address, email, roll);
        }
    }
}