I have the following code exercise:
Create class Intern with next fields: Name(String) Surname(String) laziness(number from 20 to 50) Curiosity (number from 0 to 100) Skill (number from 0 to 100) Irresponsibility (float number from 0.0 to 1.0) For this class create method that calculate “mark” for intern, that is calculated by formula
Question: How can I add constraints to the original data type in a class? like int a, but in range from 20 to 50. or string. Here is my code without constraints:
class Intern {
constructor(name, surname, laziness, curiosity, skill, irresponsibility) {
this.name = name
this.surname = surname
this.laziness = laziness
this.curiosity = curiosity
this.skill = skill
this.irresponsibility = irresponsibility
}
getMark() {
let mark = (((this.skill this.curiosity)*(1.5 - this.irresponsability))/(this.laziness*0.25));
return mark
}
}
CodePudding user response:
What would you like to happen if the given value is outside the constraints? Should the Intern get a default value?
I would make if statements for every attribute and check if the given value is bigger than the lowest constraint and smaller than the highest:
class Intern {
constructor(name, surname, laziness, curiosity, skill, irresponsibility) {
this.name = name
this.surname = surname
if(laziness<=50 && laziness>=20){
this.laziness = laziness
}
if(curiosity<=100 && curiosity>=0){
this.curiosity = curiosity
this.skill = skill
this.irresponsibility = irresponsibility
}
getMark() {
let mark = (((this.skill this.curiosity)*(1.5 - this.irresponsability))/(this.laziness*0.25));
return mark
}
the <= and >= operator checks if the value is smaller than or equal to or bigger than or equal to.