DOC PREVIEW
Penn CIT 591 - Basic to Object Oriented Concepts

This preview shows page 1-2-17-18-19-36-37 out of 37 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Basic Object-Oriented ConceptsConcept: An object has behaviorsConcept: An object has stateExample: A “Rabbit” objectConcept: Classes describe objectsConcept: Classes are like Abstract Data TypesExample of a classApproximate TerminologyConcept: Classes form a hierarchyExample of (part of) a hierarchyC++ is differentConcept: Objects inherit from superclassesExample of inheritanceConcept: Objects must be createdNotation: How to declare and create objectsNotation: How to reference a field or methodConcept: this objectConcept: A variable can hold subclass objectsExample: Assignment of subclassesConcept: Methods can be overriddenConcept: Don't call functions, send messagesSneaky trick: How to use overridden methodsConcept: Constructors make objectsSyntax for constructorsTrick: Give field and parameter the same nameInternal workings: Constructor chainingThe case of the vanishing constructorExample: Broken constructor chainFixing a broken constructor chainTrick: one constructor calling anotherConcept: You can control accessConcept: Classes can have fields and methodsExample of a class variableAdvice: Restrict accessAdvice: Use setters and gettersKinds of accessThe EndJan 14, 2019Basic Object-Oriented Concepts2Concept: An object has behaviorsIn old style programming, you had:data, which was completely passivefunctions, which could manipulate any dataAn object contains both data and methods that manipulate that dataAn object is active, not passive; it does thingsAn object is responsible for its own dataBut: it can expose that data to other objects3Concept: An object has stateAn object contains both data and methods that manipulate that dataThe data represent the state of the objectData can also describe the relationships between this object and other objectsExample: A CheckingAccount might haveA balance (the internal state of the account)An owner (some object representing a person)4Example: A “Rabbit” objectYou could (in a game, for example) create an object representing a rabbitIt would have data:How hungry it isHow frightened it isWhere it isAnd methods:eat, hide, run, dig5Concept: Classes describe objectsEvery object belongs to (is an instance of) a classAn object may have fields, or variablesThe class describes those fieldsAn object may have methodsThe class describes those methodsA class is like a template, or cookie cutterYou use the class’s constructor to make objects6Concept: Classes are like Abstract Data TypesAn Abstract Data Type (ADT) bundles together:some data, representing an object or "thing"the operations on that dataThe operations defined by the ADT are the only operations permitted on its dataExample: a CheckingAccount, with operations deposit, withdraw, getBalance, etc.Classes enforce this bundling togetherIf all data values are private, a class can also enforce the rule that its defined operations are the only ones permitted on the data7Example of a classclass Employee { // Fields private String name; //Can get but not change private double salary; // Cannot get or set // Constructor Employee(String n, double s) { name = n; salary = s; } // Methods void pay () { System.out.println("Pay to the order of " + name + " $" + salary); } public String getName() { return name; } // getter}8Approximate Terminologyinstance = objectfield = instance variablemethod = functionsending a message to an object = calling a functionThese are all approximately true9Concept: Classes form a hierarchyClasses are arranged in a treelike structure called a hierarchyThe class at the root is named ObjectEvery class, except Object, has a superclassA class may have several ancestors, up to ObjectWhen you define a class, you specify its superclassIf you don’t specify a superclass, Object is assumedEvery class may have one or more subclasses10Example of (part of) a hierarchyA FileDialog is a Dialog is a Window is a ContainerContainerPanel ScrollPaneWindowDialogFrameFileDialog11C++ is differentIn C++ there may be more than one rootbut not in Java!In C++ an object may have more than one parent (immediate superclass)but not in Java!Java has a single, strict hierarchy12Concept: Objects inherit from superclassesA class describes fields and methodsObjects of that class have those fields and methodsBut an object also inherits:the fields described in the class's superclassesthe methods described in the class's superclassesA class is not a complete description of its objects!13Example of inheritanceclass Person { String name; int age; void birthday () { age = age + 1; }}class Employee extends Person { double salary; void pay () { ...}}Every Employee has name and age fields and birthday method as well as a salary field and a pay method.14Concept: Objects must be createdint n; does two things:It declares that n is an integer variableIt allocates space to hold a value for nFor a primitive, this is all that is neededEmployee secretary; also does two thingsIt declares that secretary is type EmployeeIt allocates space to hold a reference to an EmployeeFor an object, this is not all that is neededsecretary = new Employee ( );This allocate space to hold a value for the EmployeeUntil you do this, the Employee is null15Notation: How to declare and create objects Employee secretary; // declares secretary secretary = new Employee (); // allocates space Employee secretary = new Employee(); // does bothBut the secretary is still "blank" (null) secretary.name = "Adele"; // dot notation secretary.birthday (); // sends a message16Notation: How to reference a field or methodInside a class, no dots are necessary class Person { ... age = age + 1; ...}Outside a class, you need to say which object you are talking to if (john.age < 75) john.birthday ();If you don't have an object, you cannot use its fields or methods!17Concept: this objectInside a class, no dots are necessary, becauseyou are working on this objectIf you wish, you can make it explicit: class Person { ... this.age = this.age + 1; ...}this is like an extra parameter to the methodYou usually don't need to use this18Concept: A variable can hold subclass objectsSuppose B is a subclass of AA objects can be assigned to A variablesB objects can be


View Full Document

Penn CIT 591 - Basic to Object Oriented Concepts

Documents in this Course
Stacks

Stacks

11 pages

Arrays

Arrays

30 pages

Arrays

Arrays

29 pages

Applets

Applets

24 pages

Style

Style

33 pages

JUnit

JUnit

23 pages

Java

Java

32 pages

Access

Access

18 pages

Methods

Methods

29 pages

Arrays

Arrays

32 pages

Methods

Methods

9 pages

Methods

Methods

29 pages

Vectors

Vectors

14 pages

Eclipse

Eclipse

23 pages

Vectors

Vectors

14 pages

Recursion

Recursion

24 pages

Animation

Animation

18 pages

Animation

Animation

18 pages

Static

Static

12 pages

Eclipse

Eclipse

23 pages

JAVA

JAVA

24 pages

Arrays

Arrays

29 pages

Animation

Animation

18 pages

Numbers

Numbers

21 pages

JUnit

JUnit

23 pages

Access

Access

18 pages

Applets

Applets

24 pages

Methods

Methods

30 pages

Buttons

Buttons

20 pages

Java

Java

31 pages

Style

Style

28 pages

Style

Style

28 pages

Load more
Download Basic to Object Oriented Concepts
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Basic to Object Oriented Concepts and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Basic to Object Oriented Concepts 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?