Classes - in COBOL and Java

COBOL Java
*> Static class, no instances possible
class-id Utils internal static.
method-id Square (x as binary-long)
returning return-value as binary-long static.
set return-value to x * x
end method.
end class.
*> Abstract class
class-id Shape public abstract.
01 #Area binary-long protected property with no set.
method-id ToString returning return-value as string override.
set return-value to "Area = " & self::Area
end method.
end class.
*> Sub class
class-id Rectangle public inherits type Shape.
01 #Width binary-long property.
01 #Height binary-long property.
property-id #Area binary-long override.
getter.
set property-value to #Width * #Height
end property.
end class.
*> Sub class of a sub class
class-id Square public inherits type Rectangle
01 #Size binary-long property.
01 #Width binary-long property override.
01 #Height binary-long property override.
property-id #Area binary-long override.
getter.
set property-value to type Utils::Square(#Size)
end property.
method-id ToString returning return-value as string override.
set return-value to "Square, " & super::ToString()
end method.
end class.
// Closest possible form of a static class
final class Utils
{
private Utils() { }
public static int square(int x)
{
return x * x;
}
}
// Abstract class
public abstract class Shape
{
protected abstract int getArea();
public String toString()
{
return "Area = " + getArea();
}
}
// Sub class
public class Rectangle extends Shape
{
private int _width, _height;
public int getWidth() { return _width; }
public void setWidth(int value) { _width = value; }
public int getHeight() { return _height; }
public void setHeight(int value) { _height = value; }
protected int getArea() { return _width * _height; }
}
// Sub class of a sub class
public class Square extends Rectangle
{
private int _size;
public int getSize() { return _size; }
public void setSize(int value) { _size = value; }
public int getWidth() { return _size; }
public void setWidth(int value) { _size = value; }
public int getHeight() { return _size; }
public void setHeight(int value) { _size = value; }
protected int getArea() { return Utils.square(getSize()); }
public String toString()
{
return "Square, " + super.toString();
}
}

Portions of these examples were produced by Dr. Frank McCown, Harding University Computer Science Dept, and are licensed under a Creative Commons License.