Exercise 3-1 (Default initialization in C and Java)
Chapter_3 Scope | Shadow Exercise_3-2 |
Exercise 3-1 TIJ, p. 61
Exercise 3-1: (2) Create a class containing an int and a char that are not initialized, and print their values to verify that Java performs default initialization.
(2) refers to the difficulty, on a scale from 1 to 10 TIJ, p. 60
CONTENTS: uninit.c UnInit.java
uninit.c
#include <stdio.h>
// uninitialized vars
int main()
{
int i;
char c;
printf("uninitialized int: %d\n", i);
printf("uninitialized char: %d\n", c);
}
/*
gcc uninit.c -o uninit
./uninit
uninitialized int: 0
uninitialized char: 0
*/
UnInit.java
public class UnInit // uninitialized
{
static int i; // uninitialized fields are set to 0
static char c; // or null
int ii;
char cc;
public static void main(String[] args)
{
// int i; // uninitialized local vars
// char c; // (compile errors)
// access static fields in a static context, main():
System.out.println("uninitialized static int: " + i);
System.out.println("uninitialized static char: " + c);
UnInit uninit = new UnInit();
System.out.println("uninitialized int field: " + uninit.ii);
System.out.println("uninitialized char field: " + new UnInit().cc);
}
}
/*
javac UnInit.java
java UnInit
uninitialized static int: 0
uninitialized static char: // null
uninitialized int field: 0
uninitialized char field: // null
*/
Chapter_3 Scope | BACK_TO_TOP | Shadow Exercise_3-2 |
Comments
Post a Comment