Howdy. 

Attendance quuestions. 

Review instance members, constructors and static variables. 

Exam 03 is this week on Thu.

There's no exam next week but we start a semester project. 

There's a final exam two weeks from Thu. 

Lab 10 has been posted Santiago will be guiding you through it today. 

Lab 11 has been posted Danny will be guiding you through it tomorrow. 

Homework 07 is meant to help you understand what project you prefer. 

There's some info that needs to be posted for Homework 07 to be complete. 

Let's look at Homework 07, what is it bringing up? 

  Graphics/GUIs 
  Mouse Events
  Timer Events 
  Keyboard Events

---

  Exam 03: 

Object-oriented programming is the beginning of the notion of framework. 

A real life example of such a framework is: the public transportation system.

  1. Simplest program that reports mouse motion events. 
  2. Simplest program that reports mouse events other than motion.   
  3. Simplest program that keeps time. 
  4. Simplest example of using Exceptions.
  5. Sorting objects with Comparable. 
  6. Sorting objects with Comparators. 
  7. Simplest program that reports keyboard events. 
  8. Simplest program that draws graphics. 
  9. Simplest GUI (JLabel, JButton, jTextField). 

https://www.cs.indiana.edu/classes/c212-dgerman/sum2017/0713a.html

Chapter  1 Introduction 
Chapter  2 Using Objects 
Chapter  3 Implementing Classes
Chapter  4 Expressions
Chapter  5 Decisions 
Chapter  6 Loops 
Chapter  7 Data Structures (Arrays/ArrayLists)

--

Chapter  8 static members and a lot of loose ends 
Chapter  9 Inheritance and Abstract Classes
Chapter 10 Interfaces 
Chapter 11 File I/O and Exceptions 

--

The Class Extension Mechanism 

public class Horse {
  public void talk() {
    System.out.println("Howdy.");  
  }
}

public class Unicorn extends Horse {
  public void sing() {
    System.out.println("Something soothing...");  
  }
}

Welcome to DrJava.  Working directory is C:\Users\dgerman\Desktop
> Horse a = new Horse()
> a
Horse@489dcac5
> Unicorn b = new Unicorn()
> b
Unicorn@73bbd91b
> a.talk()
Howdy.
> b.sing()
Something soothing...
> a.sing()
Static Error: No method in Horse has name 'sing'
> b.talk() // this is inheritance 
Howdy.


Welcome to DrJava.  Working directory is C:\Users\dgerman\Desktop
> Horse a = new Unicorn()
> Unicorn b = new Unicorn() // polymorphism 


Welcome to DrJava.  Working directory is C:\Users\dgerman\Desktop
> Unicorn b = new Unicorn()
> b.sing()
Something soothing...
> b.talk() // dynamic method lookup 
Bonjour.
> Horse a = new Unicorn()
> a.talk() // dynamic method lookup 
Bonjour.


--

Look for tomorrow through constructor chaining. 

Bring the attendance questions for tomorrow answered to class for attendance. 

-- 

See you at 2:30pm.