class Rectangle {
/** Returns new Rectangle with passed width and height */
static fromWidthHeight(w, h) {
return new Rectangle(w, h);
}
/** Returns new Rectangle that is square with width and height
equal to passed param side */
static fromSide(side) {
return Rectangle.fromWidthHeight(side, side);
}
constructor(aWidth, aHeight) {
this.width = aWidth;
this.height = aHeight;
}
/** Return short user-friendly display string */
toString() {
return 'Rectangle -- ' + this.width + 'x' + this.height;
}
}
//Try It
var rec, square;
rec = Rectangle.fromWidthHeight(10, 5);
square = Rectangle.fromSide(15);
println(rec.toString());
println(square.toString());
class FullName {
/** Returns new FullName with first, middle and last names */
static fromFirstMiddleLast(first, middle, last) {
return new FullName(first, middle, last);
}
/** Returns new FullName with first and last names
Middle name is set to blank */
static fromFirstLast(first, last) {
return FullName.fromFirstMiddleLast(first, '', last);
}
/** Returns new FullName with first name
Middle and last names are set to blank */
static fromFirst(first) {
return FullName.fromFirstMiddleLast(first, '', '');
}
constructor(aFirst, aMiddle, aLast) {
this.first = aFirst;
this.middle = aMiddle;
this.last = aLast;
}
/** Return short user-friendly display string */
toString() {
return 'Name -- ' + this.first + ' ' + this.middle + ' ' + this.last;
}
}
//Try It
var name1, name2, name3;
name1 = FullName.fromFirstMiddleLast('Asha', 'Kanvar', 'Gupta');
name2 = FullName.fromFirstLast('Asha', 'Gupta');
name3 = FullName.fromFirst('Asha');
println(name1.toString());
println(name2.toString());
println(name3.toString());