COBOL | Java |
---|---|
*>Value Types *>condition-value *>binary-char (unsigned) *>character *>binary-short, binary-long, binary-double (unsigned) *>float-short, float-long *>decimal *>DateTime (a framework type) *>Reference types *>object *>string *>Initializing declare correct as condition-value = true *> Can also infer variable type if the value has a well-defined type declare incorrect = false *> automatically a condition-value declare b as byte = h"2a" *> hex declare o as byte = o"52" *> octal declare b2 as byte = b"101010" *> binary declare person as object = null declare nam as string = "Dwight" declare grade as character = "B" declare now as type DateTime = type DateTime::Now *> No support for date/time literals declare amount as decimal = 35.99 declare gpa as float-short = 2.9 declare pi as float-long = 3.14159265 declare lTotal as binary-double = 123456 declare sTotal as binary-short = 123 declare usTotal as binary-short unsigned = 123 declare uiTotal as binary-long = 123 declare ulTotal as binary-long unsigned = 123 *>Type Information declare x as binary-long display x::GetType *> Prints System.Int32 display type of binary-long *> Prints System.Int32 display x::GetType::Name *> Prints Int32 *>Type Conversion declare f as float-short = 3.5 *> automatic conversion declare i = f as binary-long *> set to 3 (truncates decimal) end program. program-id Legacy. *> COBOL types not supported directly by other languages. *> Visual COBOL supports these types on all platforms. *> Only a few examples here 01 displayNumber pic 9(9).99. 01 computeNumber pic 9(9)V99. 01 alphaNumberic pic a(23). 01 binaryStorage pic x(12). *> Also groups and redefines - a few examples 01 arecord. 03 aSubRecord pic x(10). 03 aUnion pic 9(10) redefines aSubrecord. end program. |
import java.math.BigDecimal; import java.time.LocalDateTime; public class DataTypes { // Java doesn't have value types, though it does have // "primitives" avaialble for the common types, which // are similar in some respects // boolean // byte // char // short, int, long // float, double // BigDecimal (a framework type) @SuppressWarnings("unused") public static void main(String[] args) { boolean correct = true; // no mechanism for automatic typing byte b = 0x2a; // hex byte o = 052; // octal byte b2 = 0b101010; // binary (Java 7 onwards) Object person = null; String nam = "Dwight"; char grade = 'B'; LocalDateTime now = LocalDateTime.now(); // No support for date/time literals BigDecimal amount = new BigDecimal(35.99); float gpa = 2.9f; double pi = 3.14159265; long lTotal = 123456; short sTotal = 123; // Java has no unsigned integer types // Java reflection does not work on primitive types. Integer x = new Integer(0); System.out.println(x.getClass().getCanonicalName()); // Type conversion short f = (short) 3.5 ; // must use cast to convert int i = f; // set to 3 (truncation) } } |
Portions of these examples were produced by Dr. Frank McCown, Harding University Computer Science Dept, and are licensed under a Creative Commons License.