CSCI 1112: Lecture 3 Mona Diab
RoadMap • High level view of Object Oriented Programming (Classes) • In class exercise • Arrays
Object Oriented Programming • OOP is an approach to programming which supports the creation of new data types and operations to manipulate those types.
What is this Object ? • There is no real answer to the question, but we ’ ll call it a “ thinking cap ” . • The plan is to describe a thinking cap by telling you what actions can be done to it.
Using the Object ’ s Slots • You may put a piece of paper in each of the two slots (green and red), with a sentence written on each. • You may push the green button and the thinking cap will speak the sentence from the green slot ’ s paper. • And same for the red button.
Example
Example That ¡test ¡was ¡ ¡a ¡breeze ¡! ¡
Example I ¡should ¡ study ¡harder ¡! ¡
Thinking Cap Implementation • We can implement the thinking cap public ¡class ¡ThinkingCap ¡ ¡ using a data type { ¡ ¡ ¡ called a class. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡. ¡. ¡ ¡ ¡} ¡ ¡ ¡
Thinking Cap Implementation • The class will have two components public ¡class ¡ThinkingCap ¡ ¡ called greenWords { ¡ ¡ ¡ ¡ ¡ ¡ ¡String ¡greenWords; ¡ and redWords. ¡ ¡ ¡ ¡ ¡String ¡redWords; ¡ ¡ ¡ ¡ ¡ ¡ ¡. ¡. ¡. ¡ These components ¡ ¡ ¡ ¡ ¡ ¡ ¡ are strings which } ¡ ¡ hold the information ¡ that is placed in the two slots. • Using a class permits two features . . .
Thinking Cap Implementation The two components will be private instance public ¡class ¡ThinkingCap ¡ ¡ variables. This { ¡ ¡ ¡ ¡ private ¡String ¡greenWords; ¡ ensures that nobody ¡ ¡ ¡private ¡String ¡redWords; ¡ ¡ ¡ ¡ ¡. ¡. ¡. ¡ can directly access } ¡ this information. The ¡ ¡ only access is through methods that we provide for the class.
Thinking Cap Implementation In a class, the methods which class ¡ThinkingCap ¡ ¡ manipulate the class { ¡ ¡ ¡ ¡private ¡String ¡greenWords; ¡ are also listed. ¡ ¡ ¡private ¡String ¡redWords; ¡ ¡ ¡ ¡ ¡. ¡. ¡. ¡ } ¡ ¡ ¡ Implementations of the thinking cap methods go here.
Thinking Cap Implementation Our thinking cap has at least three methods: public ¡class ¡ThinkingCap ¡ ¡ { ¡ ¡ ¡ ¡private ¡String ¡greenWords; ¡ ¡ ¡ ¡private ¡String ¡redWords; ¡ ¡ ¡ ¡ ¡public ¡void ¡slots(String ¡newGreen, ¡String ¡newRed)... ¡ ¡ ¡ ¡public ¡void ¡pushGreen( ¡)... ¡ ¡ ¡ ¡public ¡void ¡pushRed( ¡)... ¡ ¡ } ¡
Thinking Cap Implementation The code for a new class is generally put in a Java package, as shown here: package ¡edu.colorado.simulaCons; ¡ public ¡class ¡ThinkingCap ¡ ¡ { ¡ ¡ ¡ ¡private ¡String ¡greenWords; ¡ ¡ ¡ ¡private ¡String ¡redWords; ¡ ¡ ¡ ¡ ¡public ¡void ¡slots(String ¡newGreen, ¡String ¡newRed)... ¡ ¡ ¡ ¡public ¡void ¡pushGreen( ¡)... ¡ ¡ ¡ ¡public ¡void ¡pushRed( ¡)... ¡ ¡ } ¡
Using the Thinking Cap • A program import ¡ that wants to edu.colorado.simulaCons.ThinkingCap; ¡ ¡ use the ... ¡ thinking cap can import the ThinkingCap class.
Using the Thinking Cap • Just for fun, import ¡ the example edu.colorado.simulaCons.ThinkingCap; ¡ program will ¡ public ¡class ¡Example ¡ declare two { ¡ ThinkingCap ¡ ¡ ¡ ¡ ¡public ¡staCc ¡void ¡main( ¡) ¡ variables named ¡ ¡ ¡ ¡ ¡ { ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ThinkingCap ¡student; ¡ student and fan. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ThinkingCap ¡fan; ¡
Using the Thinking Cap • The variables are examples of import ¡ reference edu.colorado.simulaCons.ThinkingCap; ¡ variables, which ¡ public ¡class ¡Example ¡ means that they { ¡ have the ¡ ¡ ¡ ¡ ¡public ¡staCc ¡void ¡main( ¡) ¡ capability of ¡ ¡ ¡ ¡ ¡ { ¡ referring to ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ThinkingCap ¡student; ¡ ThinkingCap ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ThinkingCap ¡fan; ¡ objects that we ¡ create with the ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ student ¡= ¡new ¡ThinkingCap( ¡); ¡ “new” operator. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡fan ¡= ¡new ¡ThinkingCap( ¡); ¡
Using the Thinking Cap • Once the import ¡ ThinkingCap edu.colorado.simulaCons.ThinkingCap; ¡ objects are ¡ created, we public ¡class ¡Example ¡ { ¡ can activate ¡ ¡ ¡ ¡ ¡public ¡staCc ¡void ¡main( ¡) ¡ methods such ¡ ¡ ¡ ¡ ¡ { ¡ as slot for the ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ThinkingCap ¡student; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ThinkingCap ¡fan; ¡ student ¡ thinking cap ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ student ¡= ¡new ¡ThinkingCap( ¡); ¡ object. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡fan ¡= ¡new ¡ThinkingCap( ¡); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡student . slots( ¡"Hello", ¡ ¡"Bye"); ¡
Using the Thinking Cap • Once the import ¡edu.colorado.simulaCons.ThinkingCap; ¡ ThinkingCaps ¡ public ¡class ¡Example ¡ are created, { ¡ we can ¡ ¡ ¡ ¡ ¡public ¡staCc ¡void ¡main(String[ ¡] ¡args) ¡ activate ¡ ¡ ¡ ¡ ¡ { ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ThinkingCap ¡student; ¡ methods such ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ThinkingCap ¡fan; ¡ as slot for the ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ student ¡= ¡new ¡ThinkingCap( ¡); ¡ student ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡fan ¡= ¡new ¡ThinkingCap( ¡); ¡ thinking cap. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡student . slots( ¡"Hello", ¡ ¡"Bye"); ¡
Using the Thinking Cap The method ¡ activation ¡ ¡ consists of four ¡ parts, starting ¡ with the ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡student . slots( ¡"Hello", ¡ ¡"Bye"); ¡ variable name.
Using the Thinking Cap The variable ¡ name is followed ¡ ¡ by a period. ¡ ¡ ¡ ¡ ¡ ¡ ¡student . slots( ¡"Hello", ¡ ¡"Bye"); ¡
Using the Thinking Cap After the ¡ period is the ¡ ¡ name of the ¡ method that you ¡ are activating. ¡ ¡ ¡ ¡student . slots( ¡"Hello", ¡ ¡"Bye"); ¡
Using the Thinking Cap Finally, the ¡ ¡ ¡ ¡ ¡ ¡ arguments for ¡ the method. In ¡ this example ¡ the first ¡ argument ¡ ¡ ¡ ¡ ¡student . slots( ¡"Hello", ¡ ¡"Bye"); ¡ (newGreen) is "Hello" and the second argument (newRed) is "Bye".
A Quiz How would you ¡ ¡ ¡ ¡public ¡staCc ¡void ¡main(String[ ¡] ¡args) ¡ activate student's ¡ ¡ ¡ ¡ { ¡ pushGreen method ? ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ThinkingCap ¡student; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ThinkingCap ¡fan; ¡ ¡ What would be the ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ student ¡= ¡new ¡ThinkingCap( ¡); ¡ output of student's ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡fan ¡= ¡new ¡ThinkingCap( ¡); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡student . slots( ¡"Hello", ¡ ¡"Bye"); ¡ pushGreen method at this point in the program ?
A Quiz Notice that the ¡ ¡ ¡ ¡public ¡staCc ¡void ¡main(String[ ¡] ¡args) ¡ pushGreen method ¡ ¡ ¡ ¡ { ¡ has no arguments. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ThinkingCap ¡student; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ThinkingCap ¡fan; ¡ ¡ At this point, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ student ¡= ¡new ¡ThinkingCap( ¡); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡fan ¡= ¡new ¡ThinkingCap( ¡); ¡ activating ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡student . slots( ¡"Hello", ¡ ¡"Bye"); ¡ student.pushGreen will print the string ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡student.pushGreen( ¡); ¡ Hello .
Recommend
More recommend