#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);
}
}
}