COMP 110 Review for midterm exam

Slides:



Advertisements
Similar presentations
Catie Welsh March 2,  Program 3 due tonight by 11:59pm  Lab 5 due Friday by 1pm  Sample Midterm is posted on course website ◦ Solutions will.
Advertisements

1 Chapter 2 Introduction to Java Applications Introduction Java application programming Display ____________________ Obtain information from the.
CMT Programming Software Applications
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
COMP 110 Primitive Types, Strings, and Console I/O Tabitha Peck M.S. January 23, 2008 MWF 3-3:50 pm Philips
COMP 110 Branching Statements and Boolean Expressions Tabitha Peck M.S. January 28, 2008 MWF 3-3:50 pm Philips
1 The First Step Learning objectives write Java programs that display text on the screen. distinguish between the eight built-in scalar types of Java;
COMP Classes Yi Hong May 22, Announcement  Lab 2 & 3 due today.
COMP More About Classes Yi Hong May 22, 2015.
COMP 110 Computer Basics Luv Kohli August 25, 2008 MWF 2-2:50 pm Sitterson
Catie Welsh January 12, 2011 MWF 1-1:50 pm Sitterson
By Nicholas Policelli An Introduction to Java. Basic Program Structure public class ClassName { public static void main(String[] args) { program statements.
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
COMP Mid-Term Review Yi Hong May 27, 2015.
Using Data Within a Program Chapter 2.  Classes  Methods  Statements  Modifiers  Identifiers.
 Pearson Education, Inc. All rights reserved Introduction to Java Applications.
COMP 110 switch statements and while loops Luv Kohli September 10, 2008 MWF 2-2:50 pm Sitterson
Introduction to Java Java Translation Program Structure
COMP Flow of Control: Branching 1 Yi Hong May 19, 2015.
1 Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
COMP 110 Objects and references Luv Kohli October 8, 2008 MWF 2-2:50 pm Sitterson 014.
February 28, 2013 COMP Introduction to Programming Objects and References Haohan Li TR 11:00 – 12:15, SN 011 Spring 2013.
COMP 110 Worksheet review, debugger Luv Kohli September 29, 2008 MWF 2-2:50 pm Sitterson 014.
COMP Primitive and Class Types Yi Hong May 14, 2015.
COMP 110 Classes Luv Kohli October 1, 2008 MWF 2-2:50 pm Sitterson 014.
Catie Welsh February 2,  Program 1 Due Today by 11:59pm today  Program 2 Assigned Today  Lab 2 Due Friday by 1:00pm 2.
COMP 110: Introduction to Programming Tyler Johnson Feb 16, 2009 MWF 11:00AM-12:15PM Sitterson 014.
Catie Welsh February 23,  Lab 4 due on Friday  Lab 5 will be assigned on Friday 2.
Topic 8Classes, Objects and Methods 1 Topic 8 l Class and Method Definitions l Information Hiding and Encapsulation l Objects and Reference Classes, Objects,
COMP 110 Branching Statements and Boolean Expressions Luv Kohli September 8, 2008 MWF 2-2:50 pm Sitterson
1 Flow of Control Chapter 5. 2 Objectives You will be able to: Use the Java "if" statement to control flow of control within your program.  Use the Java.
Catie Welsh March 4,  Midterm on Monday, March 14th ◦ Closed books, no notes, no computer  No office hours during Spring Break ◦ However, I will.
1 Agenda  Unit 7: Introduction to Programming Using JavaScript T. Jumana Abu Shmais – AOU - Riyadh.
COMP 110 More about classes Luv Kohli October 3, 2008 MWF 2-2:50 pm Sitterson 014.
COMP 110 Some more about objects and references Luv Kohli October 10, 2008 MWF 2-2:50 pm Sitterson 014.
COMP Review of Chapter 1 & 2
© 2004 Pearson Addison-Wesley. All rights reserved August 27, 2007 Primitive Data Types ComS 207: Programming I (in Java) Iowa State University, FALL 2007.
CompSci 230 S Programming Techniques
Information and Computer Sciences University of Hawaii, Manoa
Michele Weigle - COMP 14 - Spr 04 Catie Welsh February 21, 2011
Yanal Alahmad Java Workshop Yanal Alahmad
COMP Objects and References
Chapter 5: Control Structures II
Multiple variables can be created in one declaration
Primitive Data, Variables, Loops (Maybe)
Data types and variables
CET 3640 – Lecture 2 Java Syntax Chapters 2, 4, 5
COMP 110 Information hiding and encapsulation
CSS 161 Fundamentals of Computing Introduction to Computers & Java
Introduction to C++ Programming
COMP 110 Loops, loops, loops, loops, loops, loops…
Building Java Programs
T. Jumana Abu Shmais – AOU - Riyadh
Announcements Program 2 is due tomorrow by noon Lab 4 was due today
CS 200 Primitives and Expressions
Building Java Programs Chapter 2
elementary programming
Focus of the Course Object-Oriented Software Development
Chapter 2 Programming Basics.
Building Java Programs
Building Java Programs
Object Oriented Programming in java
Primitive Types and Expressions
Announcements Assignment 2 and Lab 4 due Wednesday.
Building Java Programs Chapter 2
Chap 2. Identifiers, Keywords, and Types
Announcements Lab 3 was due today Assignment 2 due next Wednesday
Building Java Programs
Announcements Program 1 due noon Lab 1 due noon
Announcements Lab 5 due Wednesday at noon.
Presentation transcript:

COMP 110 Review for midterm exam Michele Weigle - COMP 14 - Spr 04 COMP 110 Review for midterm exam Luv Kohli October 20, 2008 MWF 2-2:50 pm Sitterson 014

Michele Weigle - COMP 14 - Spr 04 Announcements Midterm on Wednesday, October 22 Closed everything, except open mind Extra office hours in my office (Sitterson Hall 280) Tuesday, 3pm-5pm Wednesday, 11am-12pm Wednesday 3pm-4pm office hours canceled for this week Brooks Building dedication this Friday, October 24 Lots of neat demos all day

Michele Weigle - COMP 14 - Spr 04 Questions? Any other questions?

Michele Weigle - COMP 14 - Spr 04 Today in COMP 110 A whirlwind tour of almost everything we have covered so far These slides are essentially extracted from earlier lectures Go over Lab 5

Michele Weigle - COMP 14 - Spr 04 Hardware vs. Software Hardware - physical machine CPU, Memory Software - programs that give instructions to the computer Windows XP, Games, jGRASP

Hardware CPU – the “brain” of your computer Memory – stores data for the computer How much the “brain” can remember Main memory Auxiliary memory

Memory Measured in bytes 1 byte = 8 bits Bit is either 0 or 1 Language of the computer is in bits

Programming Languages Michele Weigle - COMP 14 - Spr 04 Programming Languages Your Program High-level language (human readable) Compiler Low-level language (computer readable) Machine Language (Bits)

Algorithms and pseudocode Michele Weigle - COMP 14 - Spr 04 Algorithms and pseudocode Algorithm – a set of instructions for solving a problem Pseudocode – combination of code and English used to express an algorithm before writing algorithm into code

Variables Used to store data in a program The data currently in a variable is its value Name of variable is an identifier Can change value throughout program Choose variable names that are meaningful!

How to use variables Declare a variable Assign a value to the variable int number; Assign a value to the variable number = 37; Change the value of the variable number = 513;

Michele Weigle - COMP 14 - Spr 04 Keywords Reserved words with predefined meanings You cannot name your variables keywords if, else, return, new

Michele Weigle - COMP 14 - Spr 04 Type What kind of value the variable can hold Two kinds of types. Primitive type - indecomposable values Names begin with lowercase letters int, double, char, float, byte, boolean, some others Class type - objects with both data and methods Names by convention begin with uppercase letter Scanner, String, Student, UpgradedSmiley We have seen these class types in the FirstProgram code

Assignment Statements Change a variable’s value Syntax: variable = expression; Example: sleepNeeded = 8; sleepDesired = sleepNeeded * 2;

Assignment compatibilities int x = 5; double y = 12.7; y = x;  = x = y;  = OK Not OK

Type casting x = (int) y;  = (int) OK

Michele Weigle - COMP 14 - Spr 04 Arithmetic Operators Unary operators +, -, ++, --, ! Binary arithmetic operators *, /, %, +, - rate*rate + delta 1/(time + 3*mass) (a - 7)/(t + 9*v)

Michele Weigle - COMP 14 - Spr 04 Modular Arithmetic - % Remainder 7 % 3 = 1 (7 / 3 = 2, remainder 1) 8 % 3 = 2 (8 / 3 = 2, remainder 2) 9 % 3 = 0 (9 / 3 = 3, remainder 0)

Parentheses and Precedence Expressions inside parentheses evaluated first (cost + tax) * discount cost + (tax * discount) Highest precedence First: the unary operators: +, -, ++, --, ! Second: the binary arithmetic operators: *, /, % Third: the binary arithmetic operators: +, - Lowest precedence

Errors Syntax error – grammatical mistake in your program Run-time error – an error that is detected during program execution Logic error – a mistake in a program caused by the underlying algorithm

Michele Weigle - COMP 14 - Spr 04 Strings A string (lowercase) is a sequence of characters “Hello world!” “Enter a whole number from 1 to 99.” String (capital S) is a class in Java, not a primitive type

Michele Weigle - COMP 14 - Spr 04 String String animal = “aardvark”; System.out.println(animal); aardvark

Michele Weigle - COMP 14 - Spr 04 String Concatenation String animal = “aardvark”; String sentence; sentence = “My favorite animal is the ” + animal; My favorite animal is the aardvark Concatenate many strings They can be as long as you want (assuming you have enough memory)

Michele Weigle - COMP 14 - Spr 04 Strings methods myString.length(); myString.equals(“a string”); myString.toLowerCase(); myString.trim(); Many others

Michele Weigle - COMP 14 - Spr 04 String Indices U N C i s G r e a t 1 2 3 4 5 6 7 8 9 10 11 String output = myString.substring(1, 8); output = “NC is G”

Michele Weigle - COMP 14 - Spr 04 String Indices U N C i s G r e a t 1 2 3 4 5 6 7 8 9 10 11 String output = myString.substring(1, 8); output = “NC is G”

Michele Weigle - COMP 14 - Spr 04 Escape Characters \” Double quote \’ Single quote \\ Backslash \n New line \r Carriage return \t Tab

Michele Weigle - COMP 14 - Spr 04 Keyboard Input Scanner kb = new Scanner(System.in); int num = kb.nextInt(); 28

Comments // this is a comment /* This is also a comment */

Boolean Expressions An expression that is either true or false Examples: It is sunny today (true) 10 is larger than 5 (true) Today is Saturday (false)

Prompt user for integer if/else statements import java.util.*; public class FlowChart { public static void main(String[] args) { System.out.println("Give me an integer:"); Scanner keyboard = new Scanner(System.in); int inputInt = keyboard.nextInt(); if (inputInt > 10) { System.out.println("big number"); } else { System.out.println("small number"); } } } Is input greater than 10? Yes No Prompt user for integer Print: “big number” Print: “small number”

Java Comparison Operators == Equal to != Not equal to > Greater than >= Greater than or equal to < Less than <= Less than or equal to Example expressions: variable <= 6 myInt > 5 5 == 3

boolean type Can be either true or false boolean sunny = true; boolean cloudy = false; if (sunny || cloudy) { // walk to school }

&&, || operators AND if ((temperature > 50) && (temperature < 75)) { // walk to school } OR if (sunny || cloudy)

The ! (NOT) operator !true is false !false is true Example: walk to school if it is NOT cloudy if (!cloudy) { // walk to school }

switch statement switch(year) { case 1: System.out.println(“freshman”); break; case 2: System.out.println(“sophomore”); case 3: System.out.println(“junior”); case 4: System.out.println(“senior”); default: System.out.println(“unknown”); } Controlling expression Case labels Break statements Default case: all other values

Distribute sandwiches Loops Loop: part of a program that repeats Body: statements being repeated Iteration: each repetition of body Stopping condition Start Enough sandwiches? Distribute sandwiches No Yes Make sandwich

Types of Loops while do-while for Safest choice Not always most elegant do-while Loop iterates AT LEAST once for Similar to while, but often more convenient syntax

Using a while loop int n = 1; while (n <= 10) { System.out.println(n); n = n + 1; }

Using a do-while loop int n = 1; do { System.out.println(n); n = n + 1; } while (n <= 10); Don’t forget the semicolon!

Using a for loop int n; for (n = 1; n <= 10; n++) { System.out.println(n); }

Infinite loop example int n; for (n = 1; n <= 10; n = 0) { System.out.println(n); }

The break statement for (int item = 1; item <= 5; item++) { System.out.print(“Enter cost of item #” + item + “: $”); amount = keyboard.nextDouble(); total = total + amount; if (total >= 100) System.out.println(“You spent all your money.”); break; } System.out.println(“Your total so far is $” + total); System.out.println(“You spent $” + total);

Identify the loop body from pseudocode Output instructions to the user Initialize variables Prompt user for input Read a number into variable next sum = sum + next; ... Output the sum Repeated statements become your loop body Statements that are only done once are not part of your loop body

Initializing statements Variables used in your loop need to be initialized (set to a value) before the loop next Read a number into variable next We read a new value for next before using it during each iteration of the loop so we do not need to initialize it sum sum = sum + next; sum is on the right side of an assignment statement. sum MUST have a valid value before the loop starts.

Ending a loop Count-controlled loops User-controlled loops If you know the number of loop iterations for (count = 0; count < iterations; count++) User-controlled loops Ask-before-iterating Sentinel value

Nested loops example: friendly greetings for (int stdLineA = 1; stdLineA <= 3; stdLineA++) { for (int stdLineB = 4; stdLineB <= 6; stdLineB++) System.out.println(“Student ” + stdLineA + “ shakes Student ” + stdLineB + “’s hand.”); } Inner loop Outer loop

Classes, Objects, and Methods Class: a definition of a kind of object Object: an instance of a class Contains instance variables (data) and methods Methods Methods that return a value Methods that return nothing

Class A class is the definition of a kind of object A blueprint for constructing specific objects Class Name: Automobile Data: amount of fuel speed license plate Methods (actions): accelerate: How: Press on gas pedal. decelerate: How: Press on brake pedal.

Objects, Instantiation Object Name: patsCar amount of fuel: 10 gallons speed: 55 miles per hour license plate: “135 XJK” Object Name: suesCar amount of fuel: 14 gallons speed: 0 miles per hour license plate: “SUES CAR” Object Name: ronsCar amount of fuel: 2 gallons speed: 75 miles per hour license plate: “351 WLF” Instantiations, or instances, of the class Automobile

Objects Important: classes do not have data; individual objects have data Classes specify what kind of data objects have

Creating an object Create an object jack of class Student Student jack = new Student(); Scanner keyboard = new Scanner(System.in); Create an object keyboard of class Scanner Assign memory address of object to variable Return memory address of object Create an object by calling a constructor

Instance variables Data defined in the class are called instance variables public String name; public int classYear; public double GPA; public String major; variables public: no restrictions on how these instance variables are used (more details later – public is actually a bad idea here) type: int, double, String…

Methods Two kinds of methods Methods that return a value Examples: String’s .substring() method, String’s .indexOf() method, etc. Methods that return nothing Example: System.out.println()

Methods returns a String return type returns nothing public String getMajor() { return major; } public void increaseYear() classYear++; returns a String return type returns nothing

Calling methods that return nothing object, followed by dot, then method name, then () Use them as Java statements Student jack = new Student(); jack.classYear = 1; jack.increaseYear(); System.out.println(“Jack’s class year is ” + jack.classYear);

Methods that return a value public String getClassYear() { if (classYear == 1) return “Freshman”; else if (classYear == 2) return “Sophomore”; else if ... }

Calling methods that return a value object, followed by dot, then method name, then () (same as before) Use them as a value of the type specified by the method’s return type Student jack = new Student(); jack.major = “Computer Science”; String m = jack.getMajor(); System.out.println(“Jack’s full name is ” + jack.getName()); System.out.println(“Jack’s major is ” + m);

Instance variables vs. local variables public class Student { public String name; public int classYear; // ... public void printInfo() String info = name + “: ” + classYear; System.out.println(info); } public void increaseYear() classYear++; public void decreaseYear() classYear--; classYear and name are instance variables can be used in any method in this class info is a local variable declared inside method printInfo() can only be used inside method printInfo()

Instance variables vs. local variables public class Student { public String name; public int classYear; // ... public void printInfo() String info = name + “: ” + classYear; System.out.println(info); } public void increaseYear() classYear++; info = “My info string”; // ERROR!!! public void decreaseYear() classYear--; The compiler will not recognize the variable info inside of method increaseYear()

Methods with parameters Parameters are used to hold the value that you pass to the method Parameters can be used as (local) variables inside the method public int square(int number) { return number * number; } Parameters go inside parentheses of method header

Methods with multiple parameters Multiple parameters separated by commas public double getTotal(double price, double tax) { return price + price * tax; }

Method parameters and arguments Order, type, and number of arguments must match parameters specified in method heading Add these two numbers + = ???

Calling a method with parameters public class Student { public String name; public int classYear; // ... public void setName(String studentName) name = studentName; } public void setClassYear(int year) classYear = year;

Calling a method with parameters public static void main(String[] args) { Student jack = new Student(); jack.setName(“Jack Smith”); jack.setClassYear(3); } Arguments

Calling methods from methods A method body can call another method Done the same way: receiving_object.method(); If calling a method in the same class, do not need receiving_object: method(); Alternatively, use the this keyword this.method();

Various things Information hiding Encapsulation

public/private modifier public void setMajor() public int classYear; public: there is no restriction on how you can use the method or instance variable

public/private modifier private void setMajor() private int classYear; private: can not directly use the method or instance variable’s name outside the class

Example public class Student { public int classYear; private String major; } Student jack = new Student(); jack.classYear = 1; jack.major = “Computer Science”; OK, classYear is public Error!!! major is private

Accessors and mutators How do you access private instance variables? Accessor methods (a.k.a. get methods, getters) Allow you to look at data in private instance variables Mutator methods (a.k.a. set methods, setters) Allow you to change data in private instance variables

Well encapsulated Imagine a wall between interface and implementation Private instance variables Private constants Private methods Bodies of public methods Interface: Comments Headings of public methods Public named constants Programmer who uses the class

Variables of a primitive type When declaring a variable, a certain amount of memory is assigned based on the declared primitive type What goes in this memory? int age; double length; char letter; memory

Variables of a primitive type A data value is stored in the location assigned to a variable of a primitive type

Variables of a class type What goes in these variables? Student jack; String inputString; memory

Variables of a class type Contain the memory address of the object named by the variable NOT the object itself What is an address? Object is stored in some other location in memory The address to this other location is called a reference to the object Class types are also called reference types

== vs. equals() for Strings explained String is a class type What happens when you have String s1 = new String(“Hello”); String s2 = new String(“Hello”); boolean strEqual = (s1 == s2); strEqual is false! Why? s1 and s2 store different addresses!

== vs. equals() for Strings explained What happens when you have String s1 = new String(“Hello”); String s2 = new String(“Hello”); boolean strEqual = (s1.equals(s2)); strEqual is true! Why? String’s .equals() method checks if all the characters in the two Strings are the same

Writing the .equals() method public class Book { private String name; private int page; public boolean equals(Book book) return (this.name.equals(book.name) && this.page == book.page); }

Parameters of a primitive type public void increaseNum(int num) { num++; } public void doStuff() int x = 5; increaseNum(x); System.out.println(x); Prints 5. Why? num is local to increaseNum method; does not change x

Parameters of a class type public void changeBook(Book book) { book = new Book(“Biology”); } public void doStuff() Book jacksBook = new Book(“Java”); changeBook(jacksBook); System.out.println(jacksBook.getName()); Prints Java. Why? book is local to changeBook, does not change jacksBook

Parameters of a class type public void changeBook(Book book) { book.setName(“Biology”); } public void doStuff() Book jacksBook = new Book(“Java”); changeBook(jacksBook); System.out.println(jacksBook.getName()); Prints Biology. Why? book contains the same address as jacksBook!

Lab 5 If you intended to come to the extra session last Tuesday, but were unable to due to another commitment, send me an email Lab 5 solution will be posted on web site by tonight

Michele Weigle - COMP 14 - Spr 04 Wednesday Midterm exam