Name: ____________________________________________________ Alpha: _____________________

Describe help received: _________________________________________________________________

  1. [24pts]

    Consider each expression below as appearing at the right here! in file Fruit.java, string that the resulting function call would produce.

    1. v1.foo()     ____________
    2. v1.foo('x')  ____________
    3. v1.foo(7)    ____________
    4. Jazz.bar(v1) ____________
    1. v2.foo()     ____________
    2. v2.foo('x')  ____________
    3. v2.foo(7)    ____________
    4. Jazz.bar(v2) ____________
    1. v3.foo()     ____________
    2. v3.foo('x')  ____________
    3. v3.foo(7)    ____________
    4. Jazz.bar(v3) ____________

  2. [76pts] Take a look at this program (HW11.java,Categorizer.java,RecogASCII.java,RecogJPG.java) which is a tool for analyzing files. If you have a file foo, then cat foo | java HW11 will tell you whatever the program is able to determine about the type of the file foo. Your job is to extend it so that in addition to recognizing ASCII files and JPG files, it also recognizes PDF files (which begin with four bytes corresponding to the ASCII characters %, P, D, and F (i.e. bytes %PDF). You may not modify the files Categorizer.java, RecogASCII.java or RecogJPG.java, but you may modify HW11.java and you may create new classes. Remember that casting a char to an int is done like this:
    (int)'D'
    To download HW11.java, Categorizer.java, RecogASCII.java, RecogJPG.java and test filw hwin1-4, make a directory for hw11, cd into it and do:
    Test your program on the following:
    cat hwin1 | java HW11
    cat hwin2 | java HW11
    cat hwin3 | java HW11
    cat hwin4 | java HW11
    Question: What about the object-oriented design of the original program made it easy to add on this new functionality of recognizing pdfs?

Turn in

Turn in this page (filled in, obviously) and submit code electronically with:
submit -c=IC211 -p=hw10 *.java