#java #inheritance #methods
#java #наследование #методы
Вопрос:
У меня есть действие, которое будет передано позже. Мне нужна помощь не для того, чтобы передать это действие, а для того, чтобы понять больше и иметь методы для использования в последующих действиях по программированию.
Итак, упражнение предназначено для того, чтобы попрактиковаться в наследовании, которое я понимаю, но моя проблема была не только в этом.
import java.util.*;
public class sdisp extends sInfo
{
private String cor;
private int year;
private String so;
public String getCor()
{
return cor;
}
public void setCor(String cor)
{
this.cor = cor;
}
public int getYear()
{
return year;
}
public void setYear(int year)
{
this.year = year;
}
public String getSo()
{
return so;
}
public void setSo(String so)
{
this.so = so;
}
public static void main(String[] args)
{
sdisp obj=new sdisp();
Scanner input=new Scanner(System.in);
sInfo n1=new sInfo();
sInfo s1=new sInfo();
sInfo g1=new sInfo();
sInfo n2=new sInfo();
sInfo s2=new sInfo();
sInfo g2=new sInfo();
sInfo n3=new sInfo();
sInfo s3=new sInfo();
sInfo g3=new sInfo();
sInfo n4=new sInfo();
sInfo s4=new sInfo();
sInfo g4=new sInfo();
sInfo n5=new sInfo();
sInfo s5=new sInfo();
sInfo g5=new sInfo();
sdisp c1=new sdisp();
sdisp y1=new sdisp();
sdisp so1=new sdisp();
sdisp c2=new sdisp();
sdisp y2=new sdisp();
sdisp so2=new sdisp();
sdisp c3=new sdisp();
sdisp y3=new sdisp();
sdisp so3=new sdisp();
sdisp c4=new sdisp();
sdisp y4=new sdisp();
sdisp so4=new sdisp();
sdisp c5=new sdisp();
sdisp y5=new sdisp();
sdisp so5=new sdisp();
System.out.print("Student's Name: ");
n1.setName(input.next());
System.out.print("Student Number: ");
s1.setSnum(input.nextInt());
System.out.print("Gender: ");
g1.setGen(input.next());
System.out.print("Course: ");
c1.setCor(input.next());
System.out.print("Year: ");
y1.setYear(input.nextInt());
System.out.print("Student Organization: ");
so1.setSo(input.next());
System.out.println("");
System.out.print("Student's Name: ");
n2.setName(input.next());
System.out.print("Student Number: ");
s2.setSnum(input.nextInt());
System.out.print("Gender: ");
g2.setGen(input.next());
System.out.print("Course: ");
c2.setCor(input.next());
System.out.print("Year: ");
y2.setYear(input.nextInt());
System.out.print("Student Organization: ");
so2.setSo(input.next());
System.out.println("");
System.out.print("Student's Name: ");
n3.setName(input.next());
System.out.print("Student Number: ");
s3.setSnum(input.nextInt());
System.out.print("Gender: ");
g3.setGen(input.next());
System.out.print("Course: ");
c3.setCor(input.next());
System.out.print("Year: ");
y3.setYear(input.nextInt());
System.out.print("Student Organization: ");
so3.setSo(input.next());
System.out.println("");
System.out.print("Student's Name: ");
n4.setName(input.next());
System.out.print("Student Number: ");
s4.setSnum(input.nextInt());
System.out.print("Gender: ");
g4.setGen(input.next());
System.out.print("Course: ");
c4.setCor(input.next());
System.out.print("Year: ");
y4.setYear(input.nextInt());
System.out.print("Student Organization: ");
so4.setSo(input.next());
System.out.println("");
System.out.print("Student's Name: ");
n5.setName(input.next());
System.out.print("Student Number: ");
s5.setSnum(input.nextInt());
System.out.print("Gender: ");
g5.setGen(input.next());
System.out.print("Course: ");
c5.setCor(input.next());
System.out.print("Year: ");
y5.setYear(input.nextInt());
System.out.print("Student Organization: ");
so5.setSo(input.next());
System.out.println("");
String [] gender = new String []
{
g1.getGen(), g2.getGen(), g3.getGen(), g4.getGen(), g5.getGen(),
};
int mcount = 0;
int fcount = 0;
for (int i = 0; i < gender.length; i )
{
if (gender[i].contains("Male"))
{
mcount ;
}
if (gender[i].contains("Female"))
{
fcount ;
}
}
System.out.println("Male Count: " mcount);
System.out.println("Female Count: " fcount);
if (mcount > fcount)
{
System.out.println("The majority is Male");
}
if (mcount < fcount)
{
System.out.println("The majority is Female");
}
}
}
Моя проблема в моем коде:
- Наличие нескольких переменных. Я не знаю, какой цикл использовать для создания как минимум информации о 5 студентах.
package gsetter;
public class sInfo
{
private String name;
private int snum;
private String gen;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getSnum()
{
return snum;
}
public void setSnum(int snum)
{
this.snum = snum;
}
public String getGen()
{
return gen;
}
public void setGen(String gen)
{
this.gen = gen;
}
}
Для родительского класса.
Редактировать: Я узнал, как считать мужчин и женщин и находить большинство.
Комментарии:
1. Почему вы использовали
getters-setters
and, а не aconstructor
для инициализации значений объекта? Кроме того, почемуcourse
year
so
свойства и определены в отдельном классе, а не в том же классе,sInfo
что и ?2. @salazarin. Мы еще не узнали / не узнали о
constructor
том, что нашим уроком на этой неделе было наследование и наш профессор. использовались геттеры-сеттеры, поэтому она ожидает, что мы будем использовать геттеры-сеттеры.course
,year
, иso
должно быть в основном методе отображения, наш проф. инструктируется.
Ответ №1:
По сути, вам нужно использовать цикл и запросить информацию, хранящуюся в объекте sInfo.
Цикл вы можете использовать простой цикл while и цикл пять раз. Ниже приведен пример того, как вы действуете
List<sinfo> list = new ArrayList<sinfo>()
Scanner input=new Scanner(System.in);
int i = 0;
while( i < 5)
{
sInfo n1=new sInfo();
System.out.print("Student's Name: ");
n1.setName(input.next());
System.out.print("Student Number: ");
n1.setSnum(input.nextInt());
System.out.print("Gender: ");
n1.setGen(input.next());
System.out.print("Course: ");
n1.setCor(input.next());
System.out.print("Year: ");
n1.setYear(input.nextInt());
System.out.print("Student Organization: ");
n1.setSo(input.next());
list.add(n1);
i ;
}
позже вы можете использовать список для извлечения обратно объекта 5