Fundamentals of Software Development 1

Slides:



Advertisements
Similar presentations
Chapter 1 Object-Oriented Concepts. A class consists of variables called fields together with functions called methods that act on those fields.
Advertisements

Fundamentals of Software Development 1Slide 1 Recap: Constructors, the new operator and the this object Three ideas:Three ideas: –How to write a constructor.
Fundamentals of Software Development 1Slide 1 Today’s Summary Statements: Conditionals (if-then-else)Statements: Conditionals (if-then-else) Investigated.
Fields, Constructors, Methods
Java Basics M Taimoor Khan
Fundamentals of Software Development 1Slide 1 Review: Why start with WordGames? You wrote your first lines of code in this course in WordGames.You wrote.
Fundamentals of Software Development 1Slide 1 Today’s Summary Hello World concepts – –main, static, console Programming patterns involving assignment and.
Chapter 41 Defining Classes and Methods Chapter 4.
Fundamentals of Software Development 1Slide 1 Why have interfaces? A Java interface is the “face” that one class shows othersA Java interface is the “face”
Encapsulation, Inheritance & Interfaces CSE 115 Spring 2006 February 27, March 1 & 3, 2006.
Fundamentals of Software Development 1Slide 1 Today’s Summary UML class diagrams – –Why classes are important – –UML class diagrams – relationships – –UML.
Fundamentals of Software Development 1Slide 1 One class can describe many different instancesOne class can describe many different instances –Two NameDroppers,
Chapter 71 Inheritance Chapter 7. 2 Reminders Project 4 was due last night Project 5 released: due Oct 10:30 pm Project 2 regrades due by midnight.
Fundamentals of Software Development 1Slide 1 Interfaces Outline:Outline: –Generic interface versus Java interface –What a (Java) interface is: Its syntaxIts.
1 Classes, Encapsulation, Methods and Constructors Class definitions Scope of Data –Instance data –Local data The this Reference Encapsulation and Java.
Fundamentals of Software Development 1Slide 1 Method invocation versus definition To define (write) a method means to write its codeTo define (write) a.
Fundamentals of Software Development 1Slide 1 Today’s Summary Things, types and names – –What are names? types? – –Why use names? – –How to use a name:
Fundamentals of Software Development 1Slide 1 Why start with WordGames? You wrote your first lines of code in this course in WordGames.You wrote your first.
Fundamentals of Software Development 1Slide 1 Recap: Key ideas in WordGames Defining a classDefining a class Extending a class versus implementing an interfaceExtending.
Fundamentals of Software Development 1Slide 1 Today’s summary Attitudes toward learning:Attitudes toward learning: –Working in groups –Learning by doing.
Classes CS 21a: Introduction to Computing I First Semester,
Fundamentals of Software Development 1Slide 1 UML class diagrams: What are they? Unified Modeling Language (UML)Unified Modeling Language (UML) –“A family.
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Documentation javadoc. Documentation not a programmer's first love lives in a separate file somewhere usually a deliverable on the schedule often not.
COP3502 Programming Fundamentals for CIS Majors 1 Instructor: Parisa Rashidi.
Chapter 5 Introduction to Defining Classes
More about Java Classes Writing your own Java Classes More about constructors and creating objects.
 Implementing a class ◦ Implementing an interface ◦ Using documented stubs before coding ◦ Writing JUnit tests before coding ◦ Using fields CSSE 220 Object-Oriented.
1 Unified Modeling Language Michael K. Wildes University of California, Riverside – Extension Program Presentation 2.
Unified Modeling Language (UML)
Notices Assn 2 is due tomorrow, 7pm. Moodle quiz next week – written in the lab as before. Everything up to and including today’s lecture: Big Topics are.
Chapter 5 Introduction to Defining Classes Fundamentals of Java.
Java Programming: Guided Learning with Early Objects Chapter 9 Inheritance and Polymorphism.
Week 21 Introduction to Programming Ms. Knudtzon C Period Lecture 3.
Fundamentals of Software Development 1Slide 1 Today’s Summary InterfacesInterfaces –What are they? –Why are they important? –How do they relate to WordGames?
Fundamentals of Software Development 1Slide 1 Recap: Key ideas in BallWorlds so far Writing a class:Writing a class: –structure –process Writing methods:Writing.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
Recap: Key ideas in WordGames
Defining Classes and Methods
Chapter 12 – Object-Oriented Design
Recap: The design of Word Games
Object-Oriented Concepts
Summary prepared by Kirk Scott
More Sophisticated Behavior
Introduction to Eclipse
Session 2 What you already know about Java Reading and using an API
Chapter 3: Using Methods, Classes, and Objects
JavaDoc CECS277 Mimi Opkins.
An Introduction to Inheritance
Chapter 4: Writing Classes
Methods The real power of an object-oriented programming language takes place when you start to manipulate objects. A method defines an action that allows.
CISC124 Assignment 4 on Inheritance due next Monday, the 12th at 7pm.
Defining Classes and Methods
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Fall 2018 CISC124 12/1/2018 CISC124 Note that the next assignment, on encapsulation, is due next Wednesday at 7pm – not Friday. The next Quiz is not until.
Slides by Steve Armstrong LeTourneau University Longview, TX
Implementing Non-Static Features
Announcements Mid-Term Exam!! Quiz 5 Again + Quiz 6 Exercise 5
CS139 October 11, 2004.
Defining Classes and Methods
Fall 2018 CISC124 2/24/2019 CISC124 Quiz 1 marking is complete. Quiz average was about 40/60 or 67%. TAs are still grading assn 1. Assn 2 due this Friday,
Winter 2019 CMPE212 4/5/2019 CMPE212 – Reminders
Encapsulation September 13, 2006 ComS 207: Programming I (in Java)
Defining Classes and Methods
Classes CS 21a: Introduction to Computing I
Defining Classes and Methods
Classes, Objects and Methods
2009 Test Key.
Winter 2019 CMPE212 5/25/2019 CMPE212 – Reminders
Introduction to Computer Science and Object-Oriented Programming
Presentation transcript:

Fundamentals of Software Development 1 4/19/2019 Today’s Summary Interfaces What are they? Why are they important? How do they relate to WordGames? Why classes are important UML class diagrams Implementing your own classes Defining a method By using documented stubs Parameters and returned values Invoking a method Summarized on the next few slides Fundamentals of Software Development 1 Rose-Hulman Institute of Technology

Why have interfaces? A Java interface is the “face” that one class shows others An interface contains the signature but not body for each method Any class that implements an interface must provide the methods listed in the interface So an interface specifies a contract public interface ClockRadio { public Time getTime(); public void setTime(Time x); public void setTime(Time x, Station s); } Example of a Java interface Fundamentals of Software Development 1

UML class diagram for WordGames All our stuff The StringTransformable interface is how our code knows how to “connect” to your code <<interface> StringTransformable --------------------------- transform(String) : String Capitalizer NameDropper xxx … xxx Questions on this important idea? Fundamentals of Software Development 1

Why classes are important What does an object’s type tell you? Answer: How the object operates! What attributes the object has What operations the object can do Fact: The type of an object is simply the name of the class to which the object belongs What can you conclude from the above statements? Answer: The class (i.e. type) of an object tells you how the object operates! Questions? Fundamentals of Software Development 1

Review: UML class diagrams Fundamentals of Software Development 1 4/19/2019 Review: UML class diagrams What they are A notation to assist object-oriented design (not just Java) Why use UML? UML as sketch To figure out a design To communicate ideas and alternatives UML as blueprint To convey the design to the coder UML as programming language To generate code automatically from the design This is how we (and most people) use UML class diagrams – as a tool to help our thinking Fundamentals of Software Development 1 Rose-Hulman Institute of Technology

Review: UML class diagrams – relationships-only is-a (by extending a class) is-a (by implementing an interface) has-a 1 means one * means 0 or more 1 .. * means 1 or more 0 .. 1 means 0 or 1 Order Customer * 1 1 lineItem * Order Line * Corporate Customer Personal Customer 1 Product * 0..1 salesRep Questions? Employee Fundamentals of Software Development 1

UML class diagram with details Fundamentals of Software Development 1 4/19/2019 UML class diagram with details EyeBall Together, let’s examine JavaEyes and fill in the details for the EyeBall class in the UML class diagram What are the attributes? Their types? Any comments needed? What are the operations? Their types? eyeBallColor : Color xPosition : int yPosition : int radius : int Sets the EyeBall color to the given color EyeBall(Color eyeBallColor) draw( Graphics graphics) look(int x, int y) Moves the EyeBall to follow the mouse to the given (x, y) point There are two ways to show an object-type attribute: Draw a HAS-A arrow to it List it in the detailed box Choose the former if you want to emphasize the relationship Questions? Fundamentals of Software Development 1 Rose-Hulman Institute of Technology

Method invocation versus definition Fundamentals of Software Development 1 4/19/2019 Method invocation versus definition “There is a difference between knowing the path and walking the path.” ~ Morpheus “There is a difference between defining a method and invoking a method.” ~ CSSE Prof. Fundamentals of Software Development 1 Rose-Hulman Institute of Technology

Method invocation versus definition Fundamentals of Software Development 1 4/19/2019 Method invocation versus definition To define (write) a method means to write its code The code is a recipe to follow when the method runs Methods often have parameters – information that comes into the method when it is run To invoke (call, run) a method means to cause the method’s code to run Sending it actual values to substitute for the formal parameters of the method Example (on next slides) Fundamentals of Software Development 1 Rose-Hulman Institute of Technology

Method invocation versus definition To define (write) a method means to write its code To invoke (call, run) a method means to cause the method’s code to run Example (on next slide): The NameDropper class in the blue box defines: A field called myName to hold the NameDropper’s name to drop A constructor called NameDropper that takes the name to store in the field A method called transform that takes a phrase to tranform The statements in the yellow box cause the NameDropper constructor and transform method to run They each run several times, with different actual arguments substituted for the formal parameters in the NameDropper definition These statements would themselves appear in some other class Fundamentals of Software Development 1

private String myName; public class NameDropper extends StringTransformer implements StringTransformable { private String myName; public NameDropper(String nameToUse) { this.myName = nameToUse; } public transform(String phrase) { return this.myName + “says ” + phrase; } } Definition of the NameDropper class NameDropper person1, person2, person3; person1 = new NameDropper(“Calvin”); person2 = new NameDropper(“Hobbes”); person3 = new NameDropper(“lobster”); person1.transform(“you look funny today, Hobbes.”); person2.transform(“you looker even funnier.”); person1.transform(“no, YOU look funnier.”); person3.transorm(“I amd just a lonely lobster.”); Invoking the NameDropper constructor and transform method Questions? Fundamentals of Software Development 1

Implementing by using documented stubs Stub: a method whose body is either: empty (if the method returns nothing), or trivial, for example: return null (if the method returns an object) return 999 (if the method returns a number) return true (if the method returns a boolean) Documented stub: a stub with appropriate Javadoc Example on next slide Fundamentals of Software Development 1

Implementing by using documented stubs Stub: a method whose body is either empty or trivial Documented stub: a stub with appropriate Javadoc Implementing by using documented stubs /** * A StringTransformer that transforms the phrase that it is given * by capitalizing it. * * @author David Mutchler. */ public class Capitalizer extends StringTransformer implements StringTransformable {     /**     * Does nothing beyond constructing the Capitalizer.     */     public Capitalizer() {     }     /**     * Capitalizes each letter of the given phrase and return the result.     *     * @param thePhrase The phrase to transform.     * @return The capitalized version of the given phrase.     */     public String transform(String thePhrase) { return null;     } } Questions? Stub Stub, to be filled in later by: return this.myName + “says ” + phrase; Fundamentals of Software Development 1

What’s Ahead? Before the next session: Next week – Details to follow: Reminder: Find the homework assignment from the Schedule page of the CSSE 120 Angel site angel.rose-hulman.edu What’s Ahead? Before the next session: Do Homework 7 (no late homework!) Including the reading and the associated online quiz Next session: More WordGames - Implementing your own classes! Next week – Details to follow: Review session Tuesday night First exam Wednesday night Our usual suggestion: Routinely do your homework in F-217 (CSSE lab). A student assistant is there every Sunday through Thursday evening, 7 pm to 9 pm, so you can get immediate answers to any questions you might have. Fundamentals of Software Development 1