Активность Java: наследование

#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, а не a constructor для инициализации значений объекта? Кроме того, почему 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