class CallerAndCallee  {
    public static void main(String[] arg) {
        int i;
        Data d;
        System.out.println("===== Example1 =====");
        inc1(2 * 50);
        System.out.println("===== Example2 =====");
        inc1(i = 100);
        System.out.println("caller: " + i);
        System.out.println("===== Example3 =====");
        i = inc3(i = 100);
        System.out.println("caller: " + i);
        System.out.println("===== Example4 =====");
        inc4(d = new Data());
        System.out.println("caller: " + d.i);
        System.out.println("===== Example5 =====");
        inc5(d = new Data());
        System.out.println("caller: " + d.i);
        System.out.println("===== Example6 =====");
        d = inc6(d = new Data());
        System.out.println("caller: " + d.i);
        System.out.println("===== Example7 =====");
        inc7();
        System.out.println("caller: " + Data.j);
    }
    static void inc1(int i) {
        System.out.println("callee: " + ++i);
    }
    static int inc3(int i) {
        System.out.println("callee: " + ++i);
        return i;
    }
    static void inc4(Data d) {
        System.out.println("callee: " + ++d.i);
    }
    static void inc5(Data d) {
        d = new Data();
        System.out.println("callee: " + ++d.i);
    }
    static Data inc6(Data d) {
        d = new Data();
        System.out.println("callee: " + ++d.i);
        return d;
    }
    static void inc7() {
        System.out.println("callee: " + ++Data.j);
    }
}

class Data {
    int i = 100;
    static int j = 100;
}
