CreatingClasses-part11 Creating Classes part 1 Barb Ericson Georgia Institute of Technology Dec 2009.

Slides:



Advertisements
Similar presentations
Inheritance Writing and using Classes effectively.
Advertisements

TOPIC 12 CREATING CLASSES PART 1 1 Notes adapted from Introduction to Computing and Programming with Java: A Multimedia Approach by M. Guzdial and B. Ericson,
AbstractClassesInterfacesPolymorphism1 Abstract Classes, Interfaces, Polymorphism Barb Ericson Georgia Tech April 2010.
Georgia Institute of Technology Workshop for CS-AP Teachers Chapter 3 Advanced Object-Oriented Concepts.
Slides 4/22 COP Topics Final Exam Review Final Exam The final exam is Friday, April 29 th at 10:00 AM in the usual room No notes, books, calculators,
1 Classes, Encapsulation, Methods and Constructors Class definitions Scope of Data –Instance data –Local data The this Reference Encapsulation and Java.
1 Generics and Using a Collection Generics / Parameterized Classes Using a Collection Customizing a Collection using Inheritance Inner Classes Use of Exceptions.
01-Intro-Object-Oriented-Prog-Alice1 Barb Ericson Georgia Institute of Technology Aug 2009 Introduction to Object-Oriented Programming in Alice.
Georgia Institute of Technology Introduction to Java part 2 Barb Ericson Georgia Institute of Technology May 2006.
Programming Games Computer science big ideas. Computer Science jargon. Show virtual dog Homework: [Catch up: dice game, credit card or other form.] Plan.
04-Intro-Object-Oriented-In-Java1 Barb Ericson Georgia Institute of Technology Sept 2009 Introduction to Object-Oriented Programming in Java.
01- Intro-Java-part1 1 Introduction to Java, and DrJava Barb Ericson Georgia Institute of Technology June 2008.
18 - Abstract Classes, Polymorphism, and Inheritance 1 Abstract Classes, Polymorphism, and Inheritance Barb Ericson Georgia Institute of Technology Dec.
Georgia Institute of Technology Introduction to Java, and DrJava Barb Ericson Georgia Institute of Technology Aug 2005.
CPSC1301 Computer Science 1 Chapter 11 Creating Classes part 1.
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 Quiz Bowl A fun review of the Java you should know from CMPT 201 If you don’t know the answers - this week is for you to study up!
1 Generics and Using a Collection Generics / Parameterized Classes Using a Collection Customizing a Collection using Inheritance Inner Classes Use of Exceptions.
Georgia Institute of Technology Creating Classes part 1 Barb Ericson Georgia Institute of Technology Oct 2005.
Georgia Institute of Technology Declaring Variables – Mod 4 Barb Ericson Georgia Institute of Technology August 2005.
CSC1401 Classes - 1. Learning Goals Computing concepts Identifying objects and classes Declaring a class Declaring fields Default field values.
Georgia Institute of Technology Manipulating Pictures, Arrays, and Loops Barb Ericson Georgia Institute of Technology August 2005.
10-Nov-15 Java Object Oriented Programming What is it?
Topic 1 Object Oriented Programming. 1-2 Objectives To review the concepts and terminology of object-oriented programming To discuss some features of.
CSC1401 Classes - 2. Learning Goals Computing concepts Adding a method To show the pictures in the slide show Creating accessors and modifiers That protect.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Georgia Institute of Technology Declaring Variables – Mod 4 Barb Ericson Georgia Institute of Technology August 2005.
Georgia Institute of Technology More on Creating Classes part 2 Barb Ericson Georgia Institute of Technology Oct 2005.
CreatingSubclasses1 Barb Ericson Georgia Institute of Technology Dec 2009.
Inheritance (Part 5) Odds and ends 1. Static Methods and Inheritance  there is a significant difference between calling a static method and calling a.
Georgia Institute of Technology Creating Classes part 4 Barb Ericson Georgia Institute of Technology May 2006.
CreatingClasses-SlideShow-part41 Creating Classes part 4 Barb Ericson Georgia Institute of Technology Dec 2009.
CreatingClasses-SlideShow-part31 Creating Classes part 3 Barb Ericson Georgia Institute of Technology Dec 2009.
Georgia Institute of Technology Creating Classes part 2 Barb Ericson Georgia Institute of Technology June 2006.
Application development with Java Lecture 21. Inheritance Subclasses Overriding Object class.
Georgia Institute of Technology More on Creating Classes part 1 Barb Ericson Georgia Institute of Technology Oct 2005.
TeachJava! 2003 Corky Cartwright Dung Nguyen Stephen Wong Charlie Reis, James Hsia, Peter Centgraf.
Georgia Institute of Technology More on Creating Classes part 3 Barb Ericson Georgia Institute of Technology Nov 2005.
SourceAnatomy1 Java Source Anatomy Barb Ericson Georgia Institute of Technology July 2008.
1 Objects and Classes: creating simulations Powerpoint created by Beverly McGuire.
Georgia Institute of Technology Comic Strip Analysis and Design Inheritance, Abstract Classes, and Polymorphism part 2 Barb Ericson Georgia Institute of.
Georgia Institute of Technology Comic Strip Analysis and Design Inheritance, Abstract Classes, and Polymorphism part1 Barb Ericson Georgia Institute of.
Georgia Institute of Technology Introduction to Java, and DrJava part 1 Dr Usman Saeed Assistant Professor Faculty of Computing and Information Technology.
Georgia Institute of Technology Workshop for CS-AP Teachers Chapter 3 Advanced Object-Oriented Concepts.
Georgia Institute of Technology Dr Usman Saeed Assistant Professor Faculty of Computing and Information Technology North Jeddah Branch King Abdulaziz University.
Georgia Institute of Technology More on Creating Classes Barb Ericson Georgia Institute of Technology June 2006.
Introduction to Java part 2
Declaring Variables – Mod 4
Creating and Modifying Text part 2
Barb Ericson Georgia Institute of Technology Dec 2009
Manipulating Pictures, Arrays, and Loops part 2
Introduction to Java part 2
Introduction to Java, and DrJava part 1
Declaring Variables – Mod 4
Arrays versus ArrayList
Teaching Java using Turtles part 3
Declaring Variables – Mod 4
Barb Ericson Georgia Institute of Technology Oct 2005
Workshop for Programming And Systems Management Teachers
Manipulating Pictures, Arrays, and Loops
Introduction to Java, and DrJava
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,
Barb Ericson Georgia Institute of Technology June 2005
Introduction to Java part 2
More on Creating Classes
CMPE212 – Reminders Quiz 1 marking done. Assignment 2 due next Friday.
Introduction to Java, and DrJava
Introduction to Java, and DrJava part 1
Barb Ericson Georgia Institute of Technology Oct 2005
More on Creating Classes part 3
Presentation transcript:

CreatingClasses-part11 Creating Classes part 1 Barb Ericson Georgia Institute of Technology Dec 2009

CreatingClasses-part12 Learning Goals Computing concepts –Identifying objects and classes –Declaring a class –Declaring fields –Default field values –Inherited methods –Overriding an inherited method

CreatingClasses-part13 Identifying Objects and Classes Object-oriented programs –Consist of interacting objects Which are defined by and created by classes To identify the objects in a task –What are the things that are doing the work or being acted upon? –How do you classify them? –What data (fields) do they need to know to do the task? –What procedures (methods) do they need?

CreatingClasses-part14 Identifying the Objects and Classes Say that we want to write a program to do a slide show –A series of pictures shown one after the other with some time waiting between the pictures One way to start is to underline the nouns –Slide show, picture, wait time A slide show has pictures and a time to wait between pictures

CreatingClasses-part15 UML Diagram for SlideShow

CreatingClasses-part16 Class Definition Each class is defined in a file –With the same name as the class: SlideShow.java Class names –Are singular (SlideShow not SlideShows) –Start with an uppercase letter –The rest of the word is lowercase –Uppercase the first letter of each additional word The syntax for a class definition is: –visibility class Name {} Inside the class definition goes: –Fields, constructors, and methods

CreatingClasses-part17 Class Declaration To declare a SlideShow class –Click on the New button in DrJava Type in: public class SlideShow { } Save it in SlideShow.java –Click on File then Save Click the Compile All button to compile it

CreatingClasses-part18 SlideShow Fields A SlideShow has pictures and a wait time –What type should we use for each of these? For the pictures we can use a 1-D array For wait time we can use integer to hold the number of milliseconds to wait Use Thread.sleep(waitTime) to wait for waitTime number of milliseconds –1000 milliseconds is one second This can cause an exception so write the method to throw Exception by adding throw Exception

CreatingClasses-part19 Declaring Fields Syntax –visiblity type name; –visibility type name = expression; Usually use private for the visibility –So that other classes can’t access it directly The type is any of the primitive types, a class name, or an interface name Arrays are declared with [] after the type or after the name –type[] name; or type name[]; Names start with a lowercase letter –The first letter of each additional word is uppercased

CreatingClasses-part110 Default Field Values If you don’t specify an initial value for a field –It will get one anyway when it is created Numbers = 0 Objects = null (not referring to any object yet) boolean = false public class SlideShow { //////////////// fields /////////////////////////////////////////// private Picture[] pictureArray; private int waitTime = 2000; } Initial value will be null

CreatingClasses-part111 Testing the SlideShow Class Add the fields to the class definition and compile it Try the following in the interactions pane –SlideShow slideShowObj = new SlideShow(); –System.out.println(slideShowObj); –SlideShow show2 = new SlideShow(); –System.out.println(show2); What happens?

CreatingClasses-part112 What Happened? (Inherited Methods) When you executed –System.out.println(slideShowObj); The class SlideShow was checked for a toString method –Since it didn’t have one the parent class was checked for a toString method The one in Object was executed –Which prints the hash code for the object –The hash code is a hex number that is unique for the object The SlideShow class inherited the toString method from the Object class

CreatingClasses-part113 How Inheritance Works When a method is invoked on an object We first check for that method in the object that defines the object’s class If it isn’t there we look in the parent of that class

CreatingClasses-part114 All Classes Inherit from Object If you don’t specify the parent class when you declare a class –The class with inherit from java.lang.Object You can specify the parent class –Add extends Parent to the class declaration public class SlideShow extends Object A declaration of public class SlideShow Is the same as public class SlideShow extends Object

CreatingClasses-part115 Getting the Class An object keeps a reference to the class that created it –You can get this class with Class currClass = obj.getClass(); Each class keeps a reference to its parent class –You can get this class with Class parentClass = currClass.getSuperclass(); Try the following: SlideShow showObj = new SlideShow(); Class showClass = showObj.getClass(); System.out.println(showClass); Class parentClass = showClass.getSuperclass(); System.out.println(parentClass);

CreatingClasses-part116 Overriding an Inherited Method If a class defines a method with the same name, parameter list, and return type as an inherited method –This method will be called instead of the parent method To override Object’s toString add this one to SlideShow: public String toString() { return "A slide show with " + this.pictureArray.length + " pictures and " + "a wait time of " + this.waitTime; }

CreatingClasses-part117 Testing toString Compile SlideShow.java Type the following in the interactions pane SlideShow showObj = new SlideShow(); System.out.println(showObj); What do you get this time? –And why? Can you fix this?

CreatingClasses-part118 Summary Object-oriented programs –Have interacting objects To decide what classes to create –Identify the objects doing the action or being acted upon And classify them (what type of thing are they?) To declare a class –public class SlideShow{} To declare a field –private type fieldName; All classes inherit from Object –Inherit the toString() method Add a toString() method to your own classes –To override the inherited method