1 COS 260 DAY 10 Tony Gauvin. 2 Agenda Questions? 4 th Mini quiz Today –Chapter 4 Assignment 2 Due Capstone Discussion Proposals Due Oct 15 No class on.

Slides:



Advertisements
Similar presentations
More Sophisticated Behaviour 1 Using library classes to implement more advanced functionality.
Advertisements

Collections & Loops Chapter 5 Copyright © 2012 Pearson Education, Inc.
Using interfaces Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling How would you find the maximum.
More sophisticated behaviour Using library classes to implement some more advanced functionality.
Copyright by Scott GrissomCh 5 Sophisticated Behavior Slide 1 Java Class Library a very large collection of classes for you to use as needed the challenge.
Slides prepared by Rose Williams, Binghamton University Chapter 14 Generics and the ArrayList Class.
Understanding class definitions Looking inside classes 3.0.
More sophisticated behavior Using library classes to implement some more advanced functionality 4.0.
More Sophisticated Behaviour 2 Using library classes to implement more advanced functionality. Also … class ( static ) fields.
Grouping Objects 1 Introduction to Collections.
Make Sure You Know All This!. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 2 Objects and Classes.
Understanding class definitions – Part II –. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Main.
More sophisticated behavior Using library classes to implement some more advanced functionality 3.0.
Understanding class definitions Looking inside classes.
More sophisticated behavior Using library classes to implement some more advanced functionality.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Random, Collections & Loops Chapter 5 Copyright © 2012 Pearson Education, Inc.
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
Java Packages and Libraries M Taimoor Khan
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Designing classes How to write classes in a way that they are easily understandable, maintainable and reusable 3.0.
Objects First With Java A Practical Introduction Using BlueJ Designing applications 1.0.
1 COS 260 DAY 2 Tony Gauvin. 2 Agenda Questions? Class roll call Blackboard Web Resources Objects and classes 1 st Mini quiz on chap1 terms and concepts.
Big Java Chapter 16.
Objects First With Java A Practical Introduction Using BlueJ Grouping objects Collections and iterators 2.0.
More sophisticated behavior Using library classes to implement some more advanced functionality 5.0.
Grouping objects Collections and iterators Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Main.
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Understanding class definitions
Designing applications Main concepts to be covered Discovering classes CRC cards Designing interfaces Patterns Objects First with Java - A Practical.
Objects First With Java A Practical Introduction Using BlueJ Supplementary Material for Java
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
COP INTERMEDIATE JAVA Designing Classes. Class Template or blueprint for creating objects. Their definition includes the list of properties (fields)
OOPDA Intro 5.0. Topics Website and Syllabus Rowan VPN and H:drive BlueJ application and projects Programming Style (Appendix J) Javadoc (Appendix I)
More sophisticated behavior Using library classes to implement some more advanced functionality 5.0.
1 COS 260 DAY 14 Tony Gauvin. 2 Agenda Questions? 6 th Mini quiz graded  Oct 29 –Chapter 6 Assignment 4 will be posted later Today –First two problems.
1 COS 260 DAY 12 Tony Gauvin. 2 Agenda Questions? 5 th Mini quiz –Chapter 5 40 min Assignment 3 Due Assignment 4 will be posted later (next week) –If.
Grouping objects Introduction to collections 5.0.
1 COS 260 DAY 21 Tony Gauvin. 2 Agenda Questions? 8 th Mini Quiz corrected –Good results 9 Th Mini Quiz Today –40 min covering Chap 9 Assignment 5 Due.
JAVA COLLECTIONS LIBRARY School of Engineering and Computer Science, Victoria University of Wellington COMP T2, Lecture 2 Marcus Frean.
1 COS 260 DAY 9 Tony Gauvin. 2 Agenda Questions? 3 rd Mini quiz –Good results ->All A’s –Threw out question on name overloading 4 th Mini quiz next class.
Programming Fundamentals 2: Libraries/ F II Objectives – –utilize some useful Java libraries e.g. String, Scanner, HashMap, and Random.
1 COS 260 DAY 22 Tony Gauvin. 2 Agenda Questions? 9 th Mini Quiz corrected –Good results Assignment 5 Not corrected yet Assignment 6 Posted (one more)
1 COS 260 DAY 18 Tony Gauvin. 2 Agenda Questions? 7 th Mini quiz Graded –Good results 8 th Mini Quiz –Chap 8  Next class Assignment 4 Due Assignment.
OOP (Java): Libraries/ OOP (Java) Objectives – –utilize some useful Java libraries e.g. String, Scanner, HashMap, and Random Semester.
Review. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Objects and Classes Objects and Classes –State.
More-Sophisticated Behavior Using library classes to implement some more advanced functionality 6.0.
5 More sophisticated behavior
BlueJ Chapter 5 More sophisticated behavior: Library classes and documentation.
More-Sophisticated Behavior
More Sophisticated Behavior
Libraries CITS1001.
COS 260 DAY 19 Tony Gauvin.
More sophisticated behavior
Understanding class definitions
COS 260 DAY 11 Tony Gauvin.
COS 260 DAY 11 Tony Gauvin.
COS 260 DAY 16 Tony Gauvin.
COS 260 DAY 10 Tony Gauvin.
COS 260 DAY 18 Tony Gauvin.
Understanding class definitions
COS 260 DAY 11 Tony Gauvin.
Collections and iterators
COS 260 DAY 23 Tony Gauvin.
COS 260 DAY 4 Tony Gauvin.
COS 260 DAY 23 Tony Gauvin.
COS 260 DAY 6 Tony Gauvin.
Collections and iterators
Introduction to Computer Science and Object-Oriented Programming
Presentation transcript:

1 COS 260 DAY 10 Tony Gauvin

2 Agenda Questions? 4 th Mini quiz Today –Chapter 4 Assignment 2 Due Capstone Discussion Proposals Due Oct 15 No class on Oct 15 Next Mini Quiz on Chapter 5  Oct 19 Assignment 3 Posted –Due Oct 19 Finish Discussion on More Sophisticated Behaviors

3 Assignment 3 Beginning with this assignment make sure all of your code is properly documented as shown in section 5.10 of the textbook (page 181 & 182). Proper documentation will be 10% of the grade for this and future assignments. Problem 1 (30 points) Complete exercises 4.72, 4.73, and 4.74 on page 149. Use the weblog-analyzer project file included with this assignment Zip the webblog-analyzer project directory, name the zip file "problem1" and upload. Make sure you update the documentation to reflect the changes to the weblog-analyzer project. Problem 2 (40 points) Complete exercises 5.57, 5.58, 5.59, 5.60 and 5.61 on page 188 & 189 of the textbook. For exercise 5.61 draw a Jack O lantern (carved pumpkin) with the words "Happy Halloween" somewhere on the canvas. Save the results of these five exercises to a new project called scribble-ver1, Zip the project directory, name the zip file "problem2" and upload. Make sure you update the documentation to reflect the changes to the scribble-ver1 project. Problem 3 (30 points) Complete exercises 5.62, 5.63 and 5.64 on page 190. Save the results of these three exercises to a new project called bouncing-balls-ver1, Zip the project directory, name the zip file "problem3" and upload. Make sure you update the documentation to reflect the changes to the bouncing-balls-ver1 project. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

More sophisticated behavior Using library classes to implement some more advanced functionality 5.0

5 Using Random (need for game development) The library class Random can be used to generate random numbers (look up in documentation) Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling import java.util.Random;... Random rand = new Random();... int num = rand.nextInt(); int value = 1 + rand.nextInt(100); int index = rand.nextInt(list.size()); random-check.zip

6 Selecting random responses for TechSupport Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling public Responder() { randomGenerator = new Random(); responses = new ArrayList (); fillResponses(); } public void fillResponses() { fill responses with a selection of response strings } public String generateResponse() { int index = randomGenerator.nextInt(responses.size()); return responses.get(index); } Tech-support2

7 Parameterized classes The documentation includes provision for a type parameter: –ArrayList These type names reappear in the parameters and return types: –E get(int index) –boolean add(E e) Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

8 Parameterized classes The types in the documentation are placeholders for the types we use in practice: –An ArrayList actually has methods: –TicketMachine get(int index) –boolean add(TicketMachine e) Replace “E” with the type you will use Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

9 Review Java has an extensive class library. A good programmer must be familiar with the library. The documentation tells us what we need to know to use a class (its interface). Some classes are parameterized with additional types. Parameterized classes are also known as generic classes or generic types. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

More sophisticated behavior Using library classes to implement some more advanced functionality

11 Main concepts to be covered Further library classes Set Map Writing documentation javadoc Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

12 Updating TechSupport Produce responses based on keywords Example –Problem: slow –Answer: Install more memory Produce responses based on keywords in context –Problem: My computer is slow –Answer: Install more memory – Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

13 Using sets import java.util.HashSet;... HashSet mySet = new HashSet (); mySet.add("one"); mySet.add("two"); mySet.add("three"); for(String element : mySet) { do something with element } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Compare with code for an ArrayList !

14 HashSet methods boolean add(E e) void clear() boolean contains(Object 0) boolean isEmpty() int size() boolean(Object o) Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

15 Tokenising Strings public HashSet getInput() { System.out.print("> "); String inputLine = reader.nextLine().trim().toLowerCase(); String[] wordArray = inputLine.split(" "); HashSet words = new HashSet (); for(String word : wordArray) { words.add(word); } return words; } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

16 Maps Maps are collections that contain pairs of values. Pairs consist of a key and a value. Lookup works by supplying a key, and retrieving a value. Example: a telephone book. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

17 Using maps A map with strings as keys and values Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling "Charles Nguyen" :HashMap "(531) " "Lisa Jones""(402) " "William H. Smith""(998) "

18 Using maps HashMap phoneBook = new HashMap (); phoneBook.put("Charles Nguyen", "(531) "); phoneBook.put("Lisa Jones", "(402) "); phoneBook.put("William H. Smith", "(998) "); String phoneNumber = phoneBook.get("Lisa Jones"); System.out.println(phoneNumber); Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

19 List, Map and Set Alternative ways to group objects. Varying implementations available: –ArrayList, LinkedList –HashSet, TreeSet But HashMap is unrelated to HashSet, despite similar names. The second word reveals organizational relatedness. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

20 Abstract Data Types Set –Collection of values in no certain order with no duplicates List –Ordered sequence of “like types” with duplicates possible Map –A collection of (key, value) pairs such that each possible key appears only once on the collection. Tech-support-complete Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

21 Writing class documentation Your own classes should be documented the same way library classes are. Other people should be able to use your class without reading the implementation. Make your class a potential 'library class'! Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

22 Elements of documentation Documentation for a class should include: the class name a comment describing the overall purpose and characteristics of the class a version number the authors’ names documentation for each constructor and each method Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

23 Elements of documentation The documentation for each constructor and method should include: the name of the method the return type the parameter names and types a description of the purpose and function of the method a description of each parameter a description of the value returned Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

24 javadoc Class comment: /** * The Responder class represents a response * generator object. It is used to generate an * automatic response. * Michael Kölling and David J. Barnes 1.0 ( ) */ Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

25 javadoc Method comment: /** * Read a line of text from standard input (the text * terminal), and return it as a set of words. * prompt A prompt to print to screen. A set of Strings, where each String is * one of the words typed by the user */ public HashSet getInput(String prompt) {... } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

26 Public vs private Public elements are accessible to objects of other classes: Fields, constructors and methods Fields should not be public. Private elements are accessible only to objects of the same class. Only methods that are intended for other classes should be public. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

27 Information hiding Data belonging to one object is hidden from other objects. Know what an object can do, not how it does it. Information hiding increases the level of independence. Independence of modules is important for large systems and maintenance. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

28 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Time to Play

29 Code completion The BlueJ editor supports lookup of methods. Use Ctrl-space after a method-call dot to bring up a list of available methods. Use Return to select a highlighted method. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

30 Code completion in BlueJ Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

31 Review Java has an extensive class library. A good programmer must be familiar with the library. The documentation tells us what we need to know to use a class (interface). The implementation is hidden (information hiding). We document our classes so that the interface can be read on its own (class comment, method comments). Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

Class and constant variables Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

33 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

34 Class variables A class variable is shared between all instances of the class. In fact, it belongs to the class and exists independent of any instances. Designated by the static keyword. Public static variables are accessed via the class (not object) name; e.g.: –Thermometer.boilingPoint Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

35 Class variables Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

36 Constants A variable, once set, can have its value fixed. Designated by the final keyword. –final int max = list.size(); Final fields must be set in their declaration or the constructor. Combing static and final is common. Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

37 Class constants static : class variable final : constant private static final int gravity = 3; Public visibility is less of an issue with final fields. Upper-case names often used for class constants: public static final int BOILING_POINT = 100; Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling