ICOM 4015 Advanced Programming Laboratory. Chapter 4 Introduction to Object Oriented Programming

Size: px
Start display at page:

Download "ICOM 4015 Advanced Programming Laboratory. Chapter 4 Introduction to Object Oriented Programming"

Transcription

1 ICOM 4015 Advanced Programming Laboratory Chapter 4 Introduction to Object Oriented Programming University of Puerto Rico Electrical and Computer Engineering Department by Juan E. Surís

2 1 Introduction In this chapter we will discuss the process of designing a class. We begin by discussing what functionality we wish the class to provide, followed by the deciding what is the necessary information to provide such functionality. Lastly, we must provide constructors for the class. Open the project called Lab4 provided. All your work should be part of this project. 2 Class Car With can think of a car as a vehicle that has a tank of gas and an associated fuel efficiency. As the car travels, gas is used. We wish to create a class for a car that represents the simplified version of the car we just described. Exercise 1: Create a new class called Car. 2.1 Class functionality The first step in designing a class is to define the functionality we wish the class to provide. In the description of a car provided, we are only concerned with the amount of gas used by the car. For the car to use any gas it must have traveled. So far we can conceive of the following operations: Drive the car. Consumes the amount of gas needed to travel the number of miles driven. We can also add the number of miles driven to the odometer 1. Add gas. To allow the car to be driven long distances, we must add gas to the gas tank. Calculate range. The range is the maximum number of miles the car can drive, given the amount of gas in the car. Once we know the operations we wish to provide, we must think of what data type each will return as well as the number and type of arguments needed. Following is a declaration of the method we will define for each operation: public boolean drive(double miles) - To drive the car we need to know how many miles to do so. The number of miles could a decimal, so we will use a double. This method returns a double indicating the number of miles the car was able to drive. The number returned could be smaller than the argument provided if the car did not have enough gas to drive that amount. public addgas(double newgas) - To add gas to the tank, we need to know the amount of gas to add to the tank. The amount of gas (measured in gallons) can be a decimal, so we will use a double. This method returns a double indicating the amount of gas in the tank after adding the new gas. 1 The odometer is the device that keeps track of how many miles the car has been driven. 1

3 public double range() - To calculate the range, we need the amount of gas in the tank and the gas efficiency of the car. The class already has this information available, so we do not need any arguments. This method returns the maximum number of miles we can drive with the amount of gas in the tank. Exercise 2: Add these method declarations (not the body) to the class Car, as in Figure 1. The methods should also have the appropriate javadoc comments. Have eclipse generate comments for you. Figure 1: Methods for class Car 2.2 Information Now we need to define the information we need to store in the class so that we can provide the necessary functionality. We can conceive of the following information: double gas - the amount of gas in the car. double gasefficiency - the number of miles that cen be driven per gallon of gas. double odometer - the total number of miles driven. Exercise 3: Add these instance fields to the class Car 2, as in Figure 2 The instance fields should be declared private. The fields should also have the appropriate javadoc comments. Have eclipse generate comments for you. 2 You should add the instance fields at the top, before the method declarations. This is not mandatory, but makes your code easier to follow. 2

4 2.3 Constructor Figure 2: Instance fields for class Car The last step before we can implement the methods is to define the constructor(s). Before we decide which constructors to provide, we need to decide for which instance fields we can assign reasonable default values. For the Car class, we can assign the following default values: gas = 0 - if not given an initial value for the amount of gas, we can assume 0. odometer = 0 - we will always assume the car has never been driven when the object is created. It is important to note that if we do not initialize instance fields, Java will assign 0 to all numeric data types. Therefore, it is not mandatory that we assign the default values as they coincide with the ones Java has assigned. However, for clarity it is good practice to assign these values anyway. Now that we know which fields have default values, we can decide on the constructor(s). All constructor must take as argument all fields which we do not have default values for. For the Car class we will implement the following constructors: public Car(double gasefficiency) public Car(double gasefficiency, double gas) Notice we did not provide a constructor with no arguments. If you do not declare any constructors, Java will add such a constructor. In this case, we have declared constructors, so Java will not add a constructor for us. 2.4 Implementation Now we have declared all instance fields, methods and constructors. The remaining thing to do is implement the constructors and methods Constructors Let us begin with the constructors. Fortunately, eclipse provides us with a way to automatically create them. Do Source Generate Constructors from Fields. Figure 3 shows the 3

5 window used to create constructors. Select the fields you wish to include in the constructor you are currently generating. I this case, we want to select gas and gasefficiency. Make sure you select the checkbox to generate the comments. Leave the checkbox to omit the call to the default constructor selected 3. Figure 3: Constructor generation When you have eclipse generate a constructor, any field that is not selected as an argument for the constructor will not have a default value assigned by the constructor. We will modify these constructors to assign default values. Exercise 4: Add the constructor implementations to the class Car 4, as in Figure 3. The declarations should also have the appropriate javadoc comments. Have eclipse generate the constructors and comments for you. Modify the generated constructors to assign default values to the fields for which we are not given values as arguments, as in Figure 4. Notice that the constructor that takes one argument looks exactly them same as the other constructor with the exception that it assigns a default value for the field gas. Instead of creating two constructors that are virtually alike, we can just create the one with two 3 We will discuss this later in the semester 4 You should add them after the instance fields but before the method declarations. This is not mandatory, but makes your code easier to follow. 4

6 Figure 4: Constructors for class Car arguments and use it to create the constructor with only one argument, using the keyword this. The following line tells Java to call the constructor with the given arguments: this(10.0, 5.0) This line can only be used in a constructor and must be the first line. Exercise 5: Modify the implementation for the constructor with only one argument so that it calls the other constructor, as in Figure 5. Figure 5: Modified constructors for class Car Exercise 6: Implement the methods, as in Figure 6 5. To finish with the Car class we need to declare and implement get and set methods for the instance fields. Usually we will provide get methods for all instance fields. However, we do not always wish to allow the instance fields to be changed from the outside of the class. Let us examine all the instance fields and decide whether we wish to provide a get method.: gas - YES. We do wish to know how much gas is in the car. 5 The comments are hidden for convinience. 5

7 Figure 6: Method implementations for class Car gasefficiency - YES. We do wish to know what the gas efficiency of the car is. odometer - YES. We do wish to know how many miles the cars has been driven. and a set method: gas - NO. The amount of gas can only be changed by calling the addgas method. gasefficiency - NO. The car efficiency of the car should not change. odometer - NO. The odometer should only change when the car is driven. Exercise 6: Implement the get methods by doing Source Generate Getters and Setters. Figure 7 shows the window where we tell eclipse which methods to create. Exercise 7: until all tests pass. Execute the JUnit test called CarTester. Fix any problems in your code 3 FaceComponent In the previous chapter we created a component that drew a face on a frame. We are now going to create a class called Face that takes care of the drawing. The component class will create a Face object and have it draw itself. 3.1 Create a Face class The project provided includes a partial implementation of the class. The first thing we want to point out about the file provided is the declaration of the instance fields. They all are of the form: private double x = 5.0 6

8 Figure 7: Getters and Setters for class Car This means that the field x is of type double and it will be initialized to the value 5.0. This is another way to assign default values to instance fields, other than by the constructor(s). Exercise 8: Implement the get/set methods for the Face class by doing Source Generate Getters and Setters. Add comments to all methods. Exercise 9: Have eclipse generate the following constructors: Face(double x, double y) Face(double x, double y, double headheight, double headwidth) 3.2 Create FaceComponent class The Face class has a method called draw that takes a Graphics2D argument. This is the method that will actually draw the face on the frame. We will create a component as we did in the last chapter, except that the paintcomponent method will now only consist of a call to the draw method. Exercise 10: Create the classes FaceViewer and FaceComponent as shown in Figure 8 and Figure 9. Execute FaceViewer several times, each time changing some of the instance 7

9 fields using the appropriate methods. Figure 8: FaceComponent class Figure 9: FaceViewer class 4 Independent Exercises Complete the following exercises: 1. Problem P3.3 Write a class SavingsAccount that is similar to the BankAccount class, except that it has an added instance field interest. Supply two constructors: One that sets both the initial balance and the interest rate, Another that sets the interest rate and the initial balance to 0.0 by calling the first constructor. Supply the following methods, as well as the necessary get methods: 8

10 deposit - the method takes a double argument indicating the amount to deposit. It returns the balance after the deposit. withdraw - the method takes a double argument indicating the amount to withdraw. It returns the balance after the withdrawl. addinterest - adds interest to the account and returns the amount of interest added. The interest should be calculated as follows: balance interest 12 Your class should pass the JUnit test provided. 2. Problem P3.6 Implement a class Student. For the purpose of this exercise, a student has a name and a total quiz score. Supply a constructor that sets the name of the student and the following methods: getname - return the name of the student. addquiz - takes an int as argument indicating the score for a given quiz and adds it to the total score. Does not return anything. gettotalscore - return the total score. getaveragescore() - returns the average score. To compute the average, you also need to store the number of quizzes that the student took. Your class should pass the JUnit test provided. 9

ICOM 4015 Advanced Programming Laboratory. Chapter 3 Introduction to Graphical Applications in Java using Swing

ICOM 4015 Advanced Programming Laboratory. Chapter 3 Introduction to Graphical Applications in Java using Swing ICOM 4015 Advanced Programming Laboratory Chapter 3 Introduction to Graphical Applications in Java using Swing University of Puerto Rico Electrical and Computer Engineering Department by Juan E. Surís

More information

ICOM 4015 Advanced Programming Laboratory. Chapter 1 Introduction to Eclipse, Java and JUnit

ICOM 4015 Advanced Programming Laboratory. Chapter 1 Introduction to Eclipse, Java and JUnit ICOM 4015 Advanced Programming Laboratory Chapter 1 Introduction to Eclipse, Java and JUnit University of Puerto Rico Electrical and Computer Engineering Department by Juan E. Surís 1 Introduction This

More information

CSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017

CSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017 This week the main activity was a quiz activity, with a structure similar to our Friday lecture activities. The retrospective for the quiz is in Quiz-07- retrospective.pdf This retrospective explores the

More information

Ryerson University Vers HAL6891A-09 School of Computer Science CPS109 Midterm Test Fall 09 page 1 of 7

Ryerson University Vers HAL6891A-09 School of Computer Science CPS109 Midterm Test Fall 09 page 1 of 7 CPS109 Midterm Test Fall 09 page 1 of 7 Last Name First Name Student Number Instructions: (a) There are 4 questions on this test. The test is worth 35% of your final mark. (b) There is a time limit of

More information

by Pearson Education, Inc. All Rights Reserved. 2

by Pearson Education, Inc. All Rights Reserved. 2 Suppose you want to drive a car and make it go faster by pressing down on its accelerator pedal. Before you can drive a car, someone has to design it and build it. A car typically begins as engineering

More information

Part 1 Dr King Book Exercises 1 12 pp

Part 1 Dr King Book Exercises 1 12 pp CSc2010 Week 10 Lab Part 1 Dr King Book Exercises 1 12 pp 122-124 1. Suppose that we decide to model a soft-drink can as an object. a) List three significant items that will be part of the state of a soft-drink

More information

Week 3 Classes and Objects

Week 3 Classes and Objects Week 3 Classes and Objects written by Alexandros Evangelidis, adapted from J. Gardiner et al. 13 October 2015 1 Last Week Last week, we looked at some of the different types available in Java, and the

More information

Software and Programming 1

Software and Programming 1 Software and Programming 1 Lab 7: Construction of a Simulated Cash Register and a Student Class 28 February 2019 SP1-Lab7-2018-19.ppt Tobi Brodie (Tobi@dcs.bbk.ac.uk) 1 Coursework Plagiarism Plagiarism

More information

Course materials Reges, Stuart, and Stepp, Martin. Building Java Programs: A Back to Basics Approach. 2d ed. (Boston: Addison-Wesley, 2011).

Course materials Reges, Stuart, and Stepp, Martin. Building Java Programs: A Back to Basics Approach. 2d ed. (Boston: Addison-Wesley, 2011). AP Computer Science A Advanced Placement Computer Science A is a fast-paced course equivalent to a college introductory programming class. Students will learn about the exciting kinds of problems tackled

More information

Software and Programming 1

Software and Programming 1 Software and Programming 1 Lab 7: Construction of a Simulated Cash Register and a Student Class 22 February 2018 SP1-Lab7-2018.ppt Tobi Brodie (Tobi@dcs.bbk.ac.uk) 1 Coursework Plagiarism Plagiarism is

More information

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved. Assoc. Prof. Dr. Marenglen Biba Laboratory Session: Exercises on classes Analogy to help you understand classes and their contents. Suppose you want to drive a car and make it go faster by pressing down

More information

Encapsulation. Mason Vail Boise State University Computer Science

Encapsulation. Mason Vail Boise State University Computer Science Encapsulation Mason Vail Boise State University Computer Science Pillars of Object-Oriented Programming Encapsulation Inheritance Polymorphism Abstraction (sometimes) Object Identity Data (variables) make

More information

CS112 Lecture: Defining Instantiable Classes

CS112 Lecture: Defining Instantiable Classes CS112 Lecture: Defining Instantiable Classes Last revised 2/3/05 Objectives: 1. To describe the process of defining an instantiable class 2. To discuss public and private visibility modifiers. Materials:

More information

Sample Solution Assignment 5. Question R3.1

Sample Solution Assignment 5. Question R3.1 Sample Solution Assignment 5 Question R3.1 The interface of a class is the part that the user interacts with, not necessarily knowing how it works. An implementation of is the creation of this interface.

More information

Recitation 3 Class and Objects

Recitation 3 Class and Objects 1.00/1.001 Introduction to Computers and Engineering Problem Solving Recitation 3 Class and Objects Spring 2012 1 Scope One method cannot see variables in another; Variables created inside a block: { exist

More information

Computer Science II. OO Programming Classes Scott C Johnson Rochester Institute of Technology

Computer Science II. OO Programming Classes Scott C Johnson Rochester Institute of Technology Computer Science II OO Programming Classes Scott C Johnson Rochester Institute of Technology Outline Object-Oriented (OO) Programming Review Initial Implementation Constructors Other Standard Behaviors

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 03: Creating Classes MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Creating Classes 2 Constructors and Object Initialization Static versus non-static fields/methods Encapsulation

More information

CSCI 1226 Second Midterm Test

CSCI 1226 Second Midterm Test CSCI 1226 Second Midterm test 2018-11-21 General Instructions Read and follow all directions carefully. CSCI 1226 Second Midterm Test Wednesday, November 21, 2018 Name: Student #: You may use Sop and Sopln

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 03: Creating Classes MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Creating Classes 2 Constructors and Object Initialization Static versus non-static fields/methods Encapsulation

More information

CS 1302 Chapter 9 (Review) Object & Classes

CS 1302 Chapter 9 (Review) Object & Classes CS 1302 Chapter 9 (Review) Object & Classes Reference Sections 9.2-9.5, 9.7-9.14 9.2 Defining Classes for Objects 1. A class is a blueprint (or template) for creating objects. A class defines the state

More information

Assignment 2 - Specifications and Modeling

Assignment 2 - Specifications and Modeling Assignment 2 - Specifications and Modeling Exercise 1 A way to document the code is to use contracts. For this exercise, you will have to consider: preconditions: the conditions the caller of a method

More information

BSc. (Hons.) Software Engineering. Examinations for / Semester 2

BSc. (Hons.) Software Engineering. Examinations for / Semester 2 BSc. (Hons.) Software Engineering Cohort: BSE/04/PT Examinations for 2005-2006 / Semester 2 MODULE: OBJECT ORIENTED PROGRAMMING MODULE CODE: BISE050 Duration: 2 Hours Reading Time: 5 Minutes Instructions

More information

ALIGARH MUSLIM UNIVERSITY Department of Computer Science. JAVA Lab Assignment Course: MCA II nd Semester Academic Session:

ALIGARH MUSLIM UNIVERSITY Department of Computer Science. JAVA Lab Assignment Course: MCA II nd Semester Academic Session: ALIGARH MUSLIM UNIVERSITY Department of Computer Science Dated: 25-01-2016 JAVA Lab Assignment Course: MCA II nd Semester Academic Session: 2015-2016 CSM-241: Object Oriented Programming Using JAVA Note:

More information

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class CS112 Lecture: Defining Classes Last revised 2/3/06 Objectives: 1. To describe the process of defining an instantiable class Materials: 1. BlueJ SavingsAccount example project 2. Handout of code for SavingsAccount

More information

Write a java program to prints the count of odd and even no s entered.

Write a java program to prints the count of odd and even no s entered. Dated: 27-01-2014 ALIGARH MUSLIM UNIVERSITY Department of Computer Science CS-2P1: Object Oriented Programming Using JAVA Java Lab Assignment Course: MCA (Semester-II nd ) Academic Session: 2013-2014 Note:

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Objectives To review the concepts and terminology of object-oriented programming To discuss some features of objectoriented design 1-2 Review: Objects In Java and other Object-Oriented

More information

Arrays: Higher Dimensional Arrays. CS0007: Introduction to Computer Programming

Arrays: Higher Dimensional Arrays. CS0007: Introduction to Computer Programming Arrays: Higher Dimensional Arrays CS0007: Introduction to Computer Programming Review If the == operator has two array variable operands, what is being compared? The reference variables held in the variables.

More information

Mobile Application Programming. Swift Classes

Mobile Application Programming. Swift Classes Mobile Application Programming Swift Classes Swift Top-Level Entities Like C/C++ but unlike Java, Swift allows declarations of functions, variables, and constants at the top-level, outside any class declaration

More information

Binghamton University. CS-140 Fall Problem Solving. Creating a class from scratch

Binghamton University. CS-140 Fall Problem Solving. Creating a class from scratch Problem Solving Creating a class from scratch 1 Recipe for Writing a Class 1. Write the class boilerplate stuff 2. Declare Fields 3. Write Creator(s) 4. Write accessor methods 5. Write mutator methods

More information

Object Oriented Programming. Week 1 Part 1 An introduction to Java, Objects and JUnit

Object Oriented Programming. Week 1 Part 1 An introduction to Java, Objects and JUnit Object Oriented Programming Part 1 An introduction to Java, Objects and JUnit Object Oriented Programming with Java 2 Syllabus This class teaches Object Oriented Programming using Java We will focus on

More information

EXAM Computer Science 1 Part 1

EXAM Computer Science 1 Part 1 Maastricht University Faculty of Humanities and Science Department of Knowledge Engineering EXAM Computer Science 1 Part 1 Block 1.1: Computer Science 1 Code: KEN1120 Examiner: Kurt Driessens Date: Januari

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 6 Problem Definition and Implementation Outline Problem: Create, read in and print out four sets of student grades Setting up the problem Breaking

More information

Lecture 7 Objects and Classes

Lecture 7 Objects and Classes Lecture 7 Objects and Classes An Introduction to Data Abstraction MIT AITI June 13th, 2005 1 What do we know so far? Primitives: int, double, boolean, String* Variables: Stores values of one type. Arrays:

More information

Agenda: Notes on Chapter 3. Create a class with constructors and methods.

Agenda: Notes on Chapter 3. Create a class with constructors and methods. Bell Work 9/19/16: How would you call the default constructor for a class called BankAccount? Agenda: Notes on Chapter 3. Create a class with constructors and methods. Objectives: To become familiar with

More information

CSEN401 Computer Programming Lab. Topics: Introduction and Motivation Recap: Objects and Classes

CSEN401 Computer Programming Lab. Topics: Introduction and Motivation Recap: Objects and Classes CSEN401 Computer Programming Lab Topics: Introduction and Motivation Recap: Objects and Classes Prof. Dr. Slim Abdennadher 16.2.2014 c S. Abdennadher 1 Course Structure Lectures Presentation of topics

More information

Implementing Classes

Implementing Classes Implementing Classes Advanced Programming ICOM 4015 Lecture 3 Reading: Java Concepts Chapter 3 Fall 2006 Slides adapted from Java Concepts companion slides 1 Chapter Goals To become familiar with the process

More information

CSIS 10A Assignment 9 Solutions

CSIS 10A Assignment 9 Solutions CSIS 10A Assignment 9 Solutions Read: Chapter 9 Choose and complete any 10 points from the problems below, which are all included in the download file on the website. Use BlueJ to complete the assignment,

More information

Mobile Application Programming. Swift Classes

Mobile Application Programming. Swift Classes Mobile Application Programming Swift Classes Swift Objects Classes, structures, and enums are all object types with different defaults in usage Classes are reference types that share the same object when

More information

CIT 590 Homework 10 Battleship

CIT 590 Homework 10 Battleship CIT 590 Homework 10 Battleship Purposes of this assignment: To give you more experience with classes and inheritance General Idea of the Assignment Once again, this assignment is based on a game, since

More information

STUDENT LESSON A5 Designing and Using Classes

STUDENT LESSON A5 Designing and Using Classes STUDENT LESSON A5 Designing and Using Classes 1 STUDENT LESSON A5 Designing and Using Classes INTRODUCTION: This lesson discusses how to design your own classes. This can be the most challenging part of

More information

Classes and Objects. COMP1400/INFS1609 Week 8. Monday, 10 September 12

Classes and Objects. COMP1400/INFS1609 Week 8. Monday, 10 September 12 Classes and Objects COMP1400/INFS1609 Week 8 Abstraction Object-oriented Programming Dividing the program into chunks at different levels of detail. Encapsulation Each chunk hides its implementation details

More information

DEPARTMENT OF INFORMATION TECHNOLOGY

DEPARTMENT OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY II Year/III Sem CS8392- OBJECT ORIENTED PROGRAMMING Prepared by: Komal Kumar.N, AP/IT, VTHT UNIVERSITY QUESTIONS FROM 2011 to 2018 PART-A 1. What are the advantages

More information

Readings for This Lecture

Readings for This Lecture Lecture 4 Classes Readings for This Lecture Section 1.4, 1.5 in text Section 3.1 in text Plive activities referenced in the text Please look at lecture summaries online Handouts are short version Presentation

More information

Object Oriented Design: Identifying Objects

Object Oriented Design: Identifying Objects Object Oriented Design: Identifying Objects Review What did we do in the last lab? What did you learn? What classes did we use? What objects did we use? What is the difference between a class and an object?

More information

2. [20] Suppose we start declaring a Rectangle class as follows:

2. [20] Suppose we start declaring a Rectangle class as follows: 1. [8] Create declarations for each of the following. You do not need to provide any constructors or method definitions. (a) The instance variables of a class to hold information on a Minesweeper cell:

More information

CS 1110 Prelim 2 November 12th, 2015

CS 1110 Prelim 2 November 12th, 2015 CS 1110 Prelim 2 November 12th, 2015 This 90-minute exam has 6 questions worth a total of 100 points. Scan the whole test before starting. Budget your time wisely. Use the back of the pages if you need

More information

ENCAPSULATION. private, public, scope and visibility rules. packages and package level access.

ENCAPSULATION. private, public, scope and visibility rules. packages and package level access. ENCAPSULATION private, public, scope and visibility rules. packages and package level access. Q. Explain the term Encapsulation with an example? Ans: The wrapping up to data and methods into a single units

More information

Object Oriented Programming. Week 1 Part 3 Writing Java with Eclipse and JUnit

Object Oriented Programming. Week 1 Part 3 Writing Java with Eclipse and JUnit Object Oriented Programming Part 3 Writing Java with Eclipse and JUnit Today's Lecture Test Driven Development Review (TDD) Building up a class using TDD Adding a Class using Test Driven Development in

More information

Practice Final Examination #2

Practice Final Examination #2 Nick Troccoli Practice Final 2 CS 106A August 16, 2017 Practice Final Examination #2 Final Exam Time: Friday, August 18th, 12:15P.M. 3:15P.M. Final Exam Location: Various (see website) Based on handouts

More information

Curriculum Map Grade(s): Subject: AP Computer Science

Curriculum Map Grade(s): Subject: AP Computer Science Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History

More information

Java Classes, Inheritance, and Interfaces

Java Classes, Inheritance, and Interfaces Java Classes, Inheritance, and Interfaces Introduction Classes are a foundational element in Java. Everything in Java is contained in a class. Classes are used to create Objects which contain the functionality

More information

Defensive Programming

Defensive Programming Defensive Programming Software Engineering CITS1220 Based on the Java1200 Lecture notes by Gordon Royle Lecture Outline Why program defensively? Encapsulation Access Restrictions Documentation Unchecked

More information

CSC Inheritance. Fall 2009

CSC Inheritance. Fall 2009 CSC 111 - Inheritance Fall 2009 Object Oriented Programming: Inheritance Within object oriented programming, Inheritance is defined as: a mechanism for extending classes by adding variables and methods

More information

C# Programming for Developers Course Labs Contents

C# Programming for Developers Course Labs Contents C# Programming for Developers Course Labs Contents C# Programming for Developers...1 Course Labs Contents...1 Introduction to C#...3 Aims...3 Your First C# Program...3 C# The Basics...5 The Aims...5 Declaring

More information

VARIABLES AND TYPES CITS1001

VARIABLES AND TYPES CITS1001 VARIABLES AND TYPES CITS1001 Scope of this lecture Types in Java the eight primitive types the unlimited number of object types Values and References The Golden Rule Primitive types Every piece of data

More information

CSCE 156 Computer Science II

CSCE 156 Computer Science II CSCE 156 Computer Science II Lab 04 - Classes & Constructors Dr. Chris Bourke Prior to Lab 1. Review this laboratory handout prior to lab. 2. Read Object Creation tutorial: http://download.oracle.com/javase/tutorial/java/javaoo/objectcreation.

More information

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 10/e Education, Inc. All Rights Reserved. Each class you create becomes a new type that can be used to declare variables and create objects. You can declare new classes as needed;

More information

C How to Program, 6/e by Pearson Education, Inc. All Rights Reserved. 1

C How to Program, 6/e by Pearson Education, Inc. All Rights Reserved. 1 C How to Program, 6/e 1 Structures : Aggregate data types are built using elements of other types struct Time { int hour; int minute; Members of the same structure must have unique names. Two different

More information

ICOM 4015: Advanced Programming

ICOM 4015: Advanced Programming ICOM 4015: Advanced Programming Lecture 3 Reading: Chapter Three: Implementing Classes Copyright 2009 by John Wiley & Sons. All rights reserved. Chapter Three - Implementing Classes Chapter Goals To become

More information

Classes. Classes as Code Libraries. Classes as Data Structures

Classes. Classes as Code Libraries. Classes as Data Structures Classes Classes/Objects/Interfaces (Savitch, Various Chapters) TOPICS Classes Public versus Private Static Data Static Methods Interfaces Classes are the basis of object-oriented (OO) programming. They

More information

CS 302: Introduction to Programming in Java. Lecture 15

CS 302: Introduction to Programming in Java. Lecture 15 CS 302: Introduction to Programming in Java Lecture 15 Class Instances of the class (objects) only valid at runtime Private Instance Methods Instance methods usually public why? If we have an internal

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:

More information

CPS122 Lecture: Defining a Class

CPS122 Lecture: Defining a Class Objectives: CPS122 Lecture: Defining a Class last revised January 14, 2016 1. To introduce structure of a Java class 2. To introduce the different kinds of Java variables (instance, class, parameter, local)

More information

Lesson 18: There is Only One Line Passing Through a Given Point with a Given

Lesson 18: There is Only One Line Passing Through a Given Point with a Given Lesson 18: There is Only One Line Passing Through a Given Point with a Given Student Outcomes Students graph equations in the form of using information about slope and intercept. Students know that if

More information

Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs.

Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs. Lab 8 Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs. Preparation: Exercise using the Account class We will be modifying the code of the Transactions

More information

Java Object Oriented Design. CSC207 Fall 2014

Java Object Oriented Design. CSC207 Fall 2014 Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code

More information

Inf1-OP. Inf1-OP Exam Review. Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein. March 20, School of Informatics

Inf1-OP. Inf1-OP Exam Review. Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein. March 20, School of Informatics Inf1-OP Inf1-OP Exam Review Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics March 20, 2017 Overview Overview of examinable material: Lectures Week 1

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming In C++ classes provide the functionality necessary to use object-oriented programming OOP is a particular way of organizing computer programs It doesn t allow you to do anything

More information

Grades. Notes (by question) Score Num Students Approx Grade A 90s 7 A 80s 20 B 70s 9 C 60s 9 C

Grades. Notes (by question) Score Num Students Approx Grade A 90s 7 A 80s 20 B 70s 9 C 60s 9 C Grades Score Num Students Approx Grade 100 1 A 90s 7 A 80s 20 B 70s 9 C 60s 9 C Score Num Students Approx Grade 50s 7 C 40s 5 D 30s 3 D 20s 1 F Notes (by question) 1. Use exit to avoid long if-then-else

More information

9/1/2015. Chapter 2 Using Objects. Objects and Classes. Using Objects. Using Objects. Using Objects. Classes. Ch. 1/2 Lab Time

9/1/2015. Chapter 2 Using Objects. Objects and Classes. Using Objects. Using Objects. Using Objects. Classes. Ch. 1/2 Lab Time Chapter 2 Using Objects The Plan For Today Chapter 1 Quiz Results Chapter 2 2.1: Objects and Classes 2.2: Variables 2.3: Calling Methods 2.4: Constructing Objects Ch. 1/2 Lab Time Ch. 1 Assignment Due

More information

Anatomy of a Method. HW3 is due Today. September 15, Midterm 1. Quick review of last lecture. Encapsulation. Encapsulation

Anatomy of a Method. HW3 is due Today. September 15, Midterm 1. Quick review of last lecture. Encapsulation. Encapsulation Anatomy of a Method September 15, 2006 HW3 is due Today ComS 207: Programming I (in Java) Iowa State University, FALL 2006 Instructor: Alexander Stoytchev Midterm 1 Next Tuesday Sep 19 @ 6:30 7:45pm. Location:

More information

class declaration Designing Classes part 2 Getting to know classes so far Review Next: 3/18/13 Driver classes:

class declaration Designing Classes part 2 Getting to know classes so far Review Next: 3/18/13 Driver classes: Designing Classes part 2 CSC 1051 Data Structures and Algorithms I Getting to know classes so far Predefined classes from the Java API. Defining classes of our own: Driver classes: Account Transactions

More information

Introduction to Computing II (ITI 1121) Midterm Examination

Introduction to Computing II (ITI 1121) Midterm Examination Introduction to Computing II (ITI 1121) Midterm Examination Instructor: Marcel Turcotte March 2014, duration: 2 hours Identification Surname: Given name: Student number: Instructions 1. This is a closed

More information

A Walkthrough of the Learning Aids

A Walkthrough of the Learning Aids x Walkthrough A Walkthrough of the Learning Aids The pedagogical elements in this book work together to focus on and reinforce key concepts and fundamental principles of programming, with additional tips

More information

Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs.

Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs. Lab 8 Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs. Preparation, Part A: Exercise using the Die class For this exercise we will be modifying an example

More information

Laboratory Activity 5: First Look at Classes

Laboratory Activity 5: First Look at Classes Laboratory Activity 5: First Look at Classes 1 Introduction The software company that you have been working for has asked you to developing a program that will be used by a Car Dealer. As the first stage

More information

Objects and Classes. Lecture 10 of TDA 540 (Objektorienterad Programmering) Chalmers University of Technology Gothenburg University Fall 2017

Objects and Classes. Lecture 10 of TDA 540 (Objektorienterad Programmering) Chalmers University of Technology Gothenburg University Fall 2017 Objects and Classes Lecture 10 of TDA 540 (Objektorienterad Programmering) Carlo A. Furia Alex Gerdes Chalmers University of Technology Gothenburg University Fall 2017 All labs have been published Descriptions

More information

Lesson 16: More on Modeling Relationships with a Line

Lesson 16: More on Modeling Relationships with a Line Student Outcomes Students use the least squares line to predict values for a given data set. Students use residuals to evaluate the accuracy of predictions based on the least squares line. Lesson Notes

More information

5. Defining Classes and Methods

5. Defining Classes and Methods 5. Defining Classes and Methods Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch/info1 Objectives! Describe and define concepts of class and object! Describe use

More information

Overview of Eclipse Lectures. Module Road Map

Overview of Eclipse Lectures. Module Road Map Overview of Eclipse Lectures 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring Lecture 2 5. Debugging 6. Testing with JUnit 7. Version Control with CVS 1 Module

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

APCS Semester #1 Final Exam Practice Problems

APCS Semester #1 Final Exam Practice Problems Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester

More information

TIME: 3 HOURS MARKS: a. Develop a java program to sort an array of N numbers in ascending order. (40)

TIME: 3 HOURS MARKS: a. Develop a java program to sort an array of N numbers in ascending order. (40) ANNA UNIVERSITY: CHENNAI-600 025 B.E/B.TECH DEGREE EXAMINATIONS, OCT/NOV. 2013 Regulations -2008 Fifth Semester B.TECH INFORMATION TECHNOLOGY IT2305 JAVA PROGRAMMING LAB TIME: 3 HOURS MARKS: 100 1. a.

More information

Inheritance. A mechanism for specialization A mechanism for reuse. Fundamental to supporting polymorphism

Inheritance. A mechanism for specialization A mechanism for reuse. Fundamental to supporting polymorphism Inheritance A mechanism for specialization A mechanism for reuse Fundamental to supporting polymorphism 68 BankAccount class Account { protected: double fbalance; public: Account( double abalance ); void

More information

COMP 1210 Documentation Guidelines Page 1 of 7. Class documentation (Chapter 1):

COMP 1210 Documentation Guidelines Page 1 of 7. Class documentation (Chapter 1): COMP 1210 Documentation Guidelines Page 1 of 7 Class documentation (Chapter 1): Every class in your program should have a Javadoc tag that specifies the programs purpose, the project number, the author,

More information

coe318 Lab 1 Introduction to Netbeans and Java

coe318 Lab 1 Introduction to Netbeans and Java coe318 Lab 1 Week of September 12, 2016 Objectives Lean how to use the Netbeans Integrated Development Environment (IDE). Learn how to generate and write formatted API documentation. Add a constructor,

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Objectives To review the concepts and terminology of object-oriented programming To discuss some features of objectoriented design 1-2 Review: Objects In Java and other Object-Oriented

More information

Spring, 2014 CIT 590. Programming Languages and Techniques Homework 7

Spring, 2014 CIT 590. Programming Languages and Techniques Homework 7 Spring, 2014 CIT 590 Programming Languages and Techniques Homework 7 Mar 21, 2014; Due Mar 28, 2014, before first recitation This homework deals with the following topics * Getting started with Java *

More information

Ticket Machine Project(s)

Ticket Machine Project(s) Ticket Machine Project(s) Understanding the basic contents of classes Produced by: Dr. Siobhán Drohan (based on Chapter 2, Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes,

More information

Collections, Maps and Generics

Collections, Maps and Generics Collections API Collections, Maps and Generics You've already used ArrayList for exercises from the previous semester, but ArrayList is just one part of much larger Collections API that Java provides.

More information

COMP 250 Winter 2011 Reading: Java background January 5, 2011

COMP 250 Winter 2011 Reading: Java background January 5, 2011 Almost all of you have taken COMP 202 or equivalent, so I am assuming that you are familiar with the basic techniques and definitions of Java covered in that course. Those of you who have not taken a COMP

More information

EECS 1001 and EECS 1030M, lab 01 conflict

EECS 1001 and EECS 1030M, lab 01 conflict EECS 1001 and EECS 1030M, lab 01 conflict Those students who are taking EECS 1001 and who are enrolled in lab 01 of EECS 1030M should switch to lab 02. If you need my help with switching lab sections,

More information

Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs.

Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs. Lab 8 Name: Checked: Objectives: Practice creating classes and methods, and using them in your programs. Preparation A: Exercise using the Die class Create a subfolder Dice for your files in this exercise.

More information

AL GHURAIR UNIVERSITY College of Computing. Objectives: Examples: if Single-Selection Statement CSC 209 JAVA I. week 3- Control Statements: Part I

AL GHURAIR UNIVERSITY College of Computing. Objectives: Examples: if Single-Selection Statement CSC 209 JAVA I. week 3- Control Statements: Part I AL GHURAIR UNIVERSITY College of Computing CSC 209 JAVA I week 3- Control Statements: Part I Objectives: To use the if and if...else selection statements to choose among alternative actions. To use the

More information

Announcements for the Class

Announcements for the Class Lecture 2 Classes Announcements for the Class Readings Section 1.4, 1.5 in text Section 3.1 in text Optional: PLive CD that comes with text References in text Assignment Assignment 1 due next week Due

More information

CSCI 355 Lab #2 Spring 2007

CSCI 355 Lab #2 Spring 2007 CSCI 355 Lab #2 Spring 2007 More Java Objectives: 1. To explore several Unix commands for displaying information about processes. 2. To explore some differences between Java and C++. 3. To write Java applications

More information

CS-140 Fall 2017 Test 1 Version Practice Practie for Sept. 27, Name:

CS-140 Fall 2017 Test 1 Version Practice Practie for Sept. 27, Name: CS-140 Fall 2017 Test 1 Version Practice Practie for Sept. 27, 2017 Name: 1. (10 points) For the following, Check T if the statement is true, the F if the statement is false. (a) T F : In mathematics,

More information

CSSE 220 Day 3. Check out UnitTesting and WordGames from SVN

CSSE 220 Day 3. Check out UnitTesting and WordGames from SVN CSSE 220 Day 3 Unit Tests and Object References Implementing Classes in Java, using Documented Stubs, Test-First Programming Check out UnitTesting and WordGames from SVN What Questions Do You Have? Syllabus

More information

CSE331 Autumn 2011 Midterm Examination October 28, 2011

CSE331 Autumn 2011 Midterm Examination October 28, 2011 CSE331 Autumn 2011 Midterm Examination October 28, 2011 50 minutes; 75 points total. Open note, open book, closed neighbor, closed anything electronic (computers, webenabled phones, etc.) An easier-to-read

More information

COMP-202: Foundations of Programming. Lecture 14: static, private, public Jackie Cheung, Winter 2015

COMP-202: Foundations of Programming. Lecture 14: static, private, public Jackie Cheung, Winter 2015 COMP-202: Foundations of Programming Lecture 14: static, private, public Jackie Cheung, Winter 2015 Announcements Assignment 3 due Tue, Feb 24 at 11:59pm 2 Happy New Year! 恭喜發財! May all your code compile

More information