SDSU CS 535 Object-Oriented Programming
Fall Semester, 2003
Assignment 2
    Assignment Index        
© 2003, All Rights Reserved, SDSU & Roger Whitney
San Diego State University -- This page last updated 15-Sep-03

Assignment 2

Due September 18

1. Remove the parentheses in the following expressions that are not needed. That is remove all parentheses you can without changing the result of the expression.

a. (3+5) raisedTo: ((3 squared) + 7)
b. (5 factorial) between: (3 squared) and: (3 * 5 * 9)

2. Assume we have the following class definitions and methods:

Class       A
Superclass       Object
      ^self value
Class       B
Superclass A
Class       C
Superclass       B
      ^super value
      ^self value
      ^self foo1
      ^super foo1
Class       D
Superclass       C

Given the following assignments

   exampleC := C new.
   exampleD := D new.
Explain what happens with each of the following expressions:

   exampleC foo1
   exampleC foo2
   exampleD foo2
   exampleC foo3
   exampleD foo3
   exampleD foo4
   exampleD foo5
3a What protocol of the Number class contains the method raisedTo:

3b Which subclasses of Number implement raisedTo:?

3c Why does Number implement raisedTo: when subclasses override the method?

4 Create a method in the Number class called tax that returns the amount of sales tax on the receiver. Use 0.0725 has the sales tax rate. Use the following code to test your method. (For this problem just turn in your source code for the method.)

| price  |
price := (Dialog request: 'Please enter price' initialAnswer: '100') asNumber.
   show: 'price: ', price printString; cr;
   show: 'tax: ',  price tax printString; cr

5. To see how scoping of different variables works, create a new class called Bar and give it as many different variables of the same name as possible. (E.g., an instance variable named “ bar”, a shared variable named “ Bar”.) Also, add a method of the same name as instance variable. Besides answering the questions below turn in your source code for the class.

5a How many different variables with the same name can you access in one method?

b. Can you access an instance variable and a local variable with the same name in one method? Explain what happens when you try this.

    visitors since 08-Sep-03