From charlesreid1

Line 2: Line 2:


Sections:
Sections:
8.1 Object Oriented Programming
8.2 Object state/behavior
8.3 Object initialization: constructors
8.4 Encapsulation
8.5 Case study: Stock class
Chapters 1-7 focused on procedural programming. Now, we'll dive into classes, core concept in Java.
Start with terminology - like prior chapter covering objects, lots of terminology.
Discuss abstraction and encapsulation.
Discuss ideas for design of new classes, and programs to use them.
==Section 8.1: Object Oriented Programming==
Definitions:
* Object oriented programming
* Object
* State
* Behavior
* Client
* Driver
===Material===
Core concept:
* state and behavior
* state: values (internal data) stored by oejct
* behavior: set of actions
* Ultimately, it is iall just data - numbers, strings, other objects, but methods are also like data - a set of instructions, a recipe
Driver program:
* The program that sets things in motion (confusing because this is also an object in Java, but think of it as the non-object object
* Objects != programs: objects == components of programs
Encapsulation
* Represneting details
* Taking care of details
* Bank analogy again - bank acct object defines some data, like name and addr, balance, acct no., some can be changed, some cannot
Classes:
* Classes: template, definition, blueprint
* Objects: actual implementation, actual instance
Class:
* object
* object
* object
house blueprint
* house
* house
* house
Point objects: (x,y)
* Provied by awt
* has methods defined
* Usage of an object, understanding how to call its methods
* History reference: DOS (cmd line) --> Mac (GUI)
* Verb noun --> noun verb
==Section 8.2: State and Behavior==
===Definitions===
Definitions:
* Mutator
* Accessor
===Material===
Working through construction of Point class
Components:
* Fields (data stored in each object)
* Methods (behavior)
* Constructor (init code)
* Encapsulation (data protection)
Object state: fields
* x and y are two Point fields
* Separate init pair x and y for each instance (blueprint)
* Creation of client code to create 2 points, compute distance
Object behavior: methods
* Behavior --> instance methods
* Translating point: example of abstraction
* Just translate the point - we don't care how you do it!
* Alt is pkublic static method, lots of detail exposed, not optimal
* IF we change point class to be 3D, now we have to change the class, and change stuff that is outside the class
Implicit parameter:
* Code for an instance method has an implied knowledge of the object it operates on (ITSELF)
* Implicit parameter - the object that is referenced during an instance method call
* Python: we have to say self.x, self.y
* Java we say this.x, this.y, but we can also just say x, y
Methods for accessing changing data:
* Objects, Java in general, obsessed with concept of data protection
* Strange fixation, at beginning
* Let's explore this.
* Bank acct example: code needs to protect data, provide accessors to appropriate code, not unfettered access to all data
* Healthcare record system in Java: served to large hospital network, access control REALLY important
To deal with data protections:
* All data is private by default
* Accessor: getParam() method
* Mutator: setParam() method
* Le the object change the data itself, provide a high-level method for accessing that functionality
toString() method:
* Strings are the central object in Java
* Concatenation works with all objects and primitive types
* Printing objects by default prints address in memory
* Can replace this default behavior by overriding toString() method
==Section 8.3: Object Init and Constructors==
===Definitions===
Definitions:
* this
===Material===
Objects are collections of data
How do we initialize that data?
Don't always want user to initialize (e.g., initialize a new bank account with 1E16 dollars).


=Flags=
=Flags=


{{CSC142Flag}}
{{CSC142Flag}}

Revision as of 19:04, 2 September 2016

Chapter 8: Classes

Sections:

8.1 Object Oriented Programming

8.2 Object state/behavior

8.3 Object initialization: constructors

8.4 Encapsulation

8.5 Case study: Stock class

Chapters 1-7 focused on procedural programming. Now, we'll dive into classes, core concept in Java.

Start with terminology - like prior chapter covering objects, lots of terminology.

Discuss abstraction and encapsulation.

Discuss ideas for design of new classes, and programs to use them.

Section 8.1: Object Oriented Programming

Definitions:

  • Object oriented programming
  • Object
  • State
  • Behavior
  • Client
  • Driver

Material

Core concept:

  • state and behavior
  • state: values (internal data) stored by oejct
  • behavior: set of actions
  • Ultimately, it is iall just data - numbers, strings, other objects, but methods are also like data - a set of instructions, a recipe

Driver program:

  • The program that sets things in motion (confusing because this is also an object in Java, but think of it as the non-object object
  • Objects != programs: objects == components of programs

Encapsulation

  • Represneting details
  • Taking care of details
  • Bank analogy again - bank acct object defines some data, like name and addr, balance, acct no., some can be changed, some cannot

Classes:

  • Classes: template, definition, blueprint
  • Objects: actual implementation, actual instance

Class:

  • object
  • object
  • object

house blueprint

  • house
  • house
  • house

Point objects: (x,y)

  • Provied by awt
  • has methods defined
  • Usage of an object, understanding how to call its methods
  • History reference: DOS (cmd line) --> Mac (GUI)
  • Verb noun --> noun verb

Section 8.2: State and Behavior

Definitions

Definitions:

  • Mutator
  • Accessor

Material

Working through construction of Point class

Components:

  • Fields (data stored in each object)
  • Methods (behavior)
  • Constructor (init code)
  • Encapsulation (data protection)

Object state: fields

  • x and y are two Point fields
  • Separate init pair x and y for each instance (blueprint)
  • Creation of client code to create 2 points, compute distance

Object behavior: methods

  • Behavior --> instance methods
  • Translating point: example of abstraction
  • Just translate the point - we don't care how you do it!
  • Alt is pkublic static method, lots of detail exposed, not optimal
  • IF we change point class to be 3D, now we have to change the class, and change stuff that is outside the class

Implicit parameter:

  • Code for an instance method has an implied knowledge of the object it operates on (ITSELF)
  • Implicit parameter - the object that is referenced during an instance method call
  • Python: we have to say self.x, self.y
  • Java we say this.x, this.y, but we can also just say x, y

Methods for accessing changing data:

  • Objects, Java in general, obsessed with concept of data protection
  • Strange fixation, at beginning
  • Let's explore this.
  • Bank acct example: code needs to protect data, provide accessors to appropriate code, not unfettered access to all data
  • Healthcare record system in Java: served to large hospital network, access control REALLY important

To deal with data protections:

  • All data is private by default
  • Accessor: getParam() method
  • Mutator: setParam() method
  • Le the object change the data itself, provide a high-level method for accessing that functionality

toString() method:

  • Strings are the central object in Java
  • Concatenation works with all objects and primitive types
  • Printing objects by default prints address in memory
  • Can replace this default behavior by overriding toString() method

Section 8.3: Object Init and Constructors

Definitions

Definitions:

  • this

Material

Objects are collections of data

How do we initialize that data?

Don't always want user to initialize (e.g., initialize a new bank account with 1E16 dollars).

Flags