*>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)
}
}
|