Как мне использовать результаты некоторых значений в классе объектов для вычисления других и установки при создании?

#java #android #class #object #default

#java #Android #класс #объект #По умолчанию

Вопрос:

У меня есть класс объектов Pupilinfo

 public class Pupilinfo {
    public Pupilinfo(String name, String level, int yearstarted, String currentclass) {
        this.name = name;
        this.level = level;
        this.yearstarted = yearstarted;
        this.currentclass = currentclass;
    }

    String name, level;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public int getYearstarted() {
        return yearstarted;
    }

    public void setYearstarted(int yearstarted) {
        this.yearstarted = yearstarted;
    }

    public String getCurrentclass() {
        return currentclass;
    }

    public void setCurrentclass(String currentclass) {
        this.currentclass = currentclass;
    }

    int yearstarted;
    String currentclass = "";
}
  

Student currentClass представляет собой смесь их currentyear (на основе фактического года и времени их запуска) и currentlevel, следовательно, что-то вроде 10b1

Я бы хотел, чтобы currentClass любого ученика по умолчанию соответствовал результату

 public String myclass() {
    String theclass;
    int myyear;
    DateFormat dateFormatmonth = new SimpleDateFormat("MM");
    DateFormat dateFormatyr = new SimpleDateFormat("yyyy");
    Date date = new Date();


    int monthnow = Integer.parseInt(String.valueOf(date));
    int yearnow = Integer.parseInt(String.valueOf(date));
    if (monthnow > 8) {
        Log.d("dates", "is passed August");
        myyear = yearnow - this.yearstarted   7;
        Log.d("dates", "myyear");
    } else {
        Log.d("dates", "is before September");
        myyear = yearnow - this.yearstarted   6;
    }


    return myyear   this.level;}
  

Я действительно изо всех сил пытаюсь быть новичком в этом. Я даже не знаю, возможно ли это.

Помогите?

Ответ №1:

Сортировка. Вызовите метод из конструктора

 public class Pupilinfo {
public Pupilinfo(String name, String level, int yearstarted, String theclass) {
    this.name = name;
    this.level = level;
    this.yearstarted = yearstarted;
    this.currentclass =myclass(yearstarted,this.level);

}

@Override
public String toString() {
    return "Pupilinfo{"  
            "name='"   name   '''  
            ", level='"   level   '''  
            ", yearstarted="   yearstarted  
            ", currentclass='"   currentclass   '''  
            '}';
}

String name, level;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getLevel() {
    return level;
}

public void setLevel(String level) {
    this.level = level;
}

public int getYearstarted() {
    return yearstarted;
}

public void setYearstarted(int yearstarted) {
    this.yearstarted = yearstarted;
}

public String getCurrentclass() {
    return currentclass;
}

public void setCurrentclass(String currentclass) {
    this.currentclass = currentclass;
}

int yearstarted;
String currentclass = "";



public String myclass(int ystart,String lvl) {
    String theclass;
    int myyear;
    DateFormat dateFormatmonth = new SimpleDateFormat("MM");

    Date date = new Date();
    Log.d("date", String.valueOf(date));
    int yearnow = Calendar.getInstance().get(Calendar.YEAR);

    int monthnow = Integer.parseInt(dateFormatmonth.format(date));
    if (monthnow > 8) {
        myyear = yearnow - ystart   7;
    } else {
        myyear = yearnow - ystart   6;
    }

    return myyear   lvl;
}
}