|
TestRange.java
|
public class TestRange {
static int sum(int vals[]){
int total;
int total1 = 0;
// same name as method is ok
// multi declaration/initialization is ok
for (int i=0, sum=0, n=0; i < vals.length; i++){
sum += vals[i];
n = sum;
total = sum;
total1 = sum;
}
// undefined variable n
// return n;
// refer to method sum in class TestRange as if
// it were a variable
// return sum;
// variable total may not have been initialized
// return total;
return total1;
}
public static void m(byte b) {
switch (b){
// case label 140 too large for 'switch' on byte
// case 140:
// System.out.println(140);
case -128:
System.out.println("-128 and " + b);
break;
case 127:
System.out.println("-128 and " + b);
break;
default:
System.out.println(b);
break;
}
}
public static void main (String[] args){
byte n = 3;
m(n); // 3
// incompatible type for (...), explicitly
// cast needed to convert int to byte
// byte nn = 130; //(declaration)
// m(3); //(method) Suprise?!
// How to get the value of (byte)456
// convert 111001000 => truncate 11001000 (negative number!)
// => minus one 11000111 then get one's complement 00111000
// => convert 56 => The answer is -56!
m((byte)456);// -56
// convert 101001000 => truncate 01001000 (positive number)
// => 72
m((byte)328);// 72
int[] nn3 = {1, 3, 5};
int[] mm3 = {1, 3, 5};
int[] nn4 = {1, 3, 5, 7};
double[] dd2 = {0.3, 4.9};
float[] ff2 = {0.3f, 4.9f};
byte[] bb2 = {2, 4};
boolean[] zz2 = {true, false};
short[] ss2 = {12, 13};
long[] ll2 = {12, 13};
char[] cc2 = {'1', 'a'};
System.out.println(sum(nn3)); // 9
// something interesting
// Java gives every primitive array a name
System.out.println(nn3); // [I@1ee878
System.out.println(mm3); // [I@1ee877
System.out.println(nn4); // [I@1ee8a0
System.out.println(dd2); // [D@1ee875
System.out.println(ff2); // [F@1ee8ca
System.out.println(bb2); // [B@1ee8c9
System.out.println(zz2); // [Z@1ee8c8
System.out.println(ss2); // [S@1ee8c7
System.out.println(ll2); // [J@1ee8c6
//print char array actually prints its contents
System.out.println(cc2); // 1a
// just for curiosity
System.out.println(cc2.getClass()); // Class [C
// How about array of objects
System.out.println(TestRange[].class); // Class [LTestRange;
System.out.println(java.lang.String[].class); // Class [Ljava.lang.String;
}
}
last updated: 04-11-2002