Transcript
Page 1: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

CSCI 51Introduction to Computer Science

Joshua StoughFebruary 3, 2009

Page 2: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Announcements• Tutoring Schedule online

– Sunday 8-10PM (Spiller)– Monday 4-6PM (Stough), 8-10PM (Siegel)– Tuesday 8-10PM (Siegel)– Wednesday 4-6PM (Stough)– Thursday 4-6PM (Spiller)– Friday 3-5PM (Stough)

• Card Access – one more step – See Kace Kush in Story House for card activation for Adams Hall after-hours access

Page 3: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Today• Increment/decrement operators• Escape sequences in string output.• Strings• More on using pre-defined

methods.• Reference objects

Page 4: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

More OperatorsIncrement and Decrement• Increment (++)

– adds 1 to any integer or floating pointcount++;count = count + 1;

• Decrement (--)– subtracts 1 from any integer or

floating pointcount--;count = count - 1;

Page 5: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Increment and Decrement• Prefix (++count or --count)

– value used in a larger expression is the new value of count (after the increment/decrement)

• Postfix (count++ or count--)– value used in a larger expression is the

original value of count (before the increment/decrement)

– increment/decrement is the last operation performed (even after assignment)

Page 6: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Increment and Decrement• If count currently contains 45, then the

statementtotal = count++;

assigns 45 to total and then 46 to count

• If count currently contains 45, then the statement

total = ++count;

assigns the value 46 to both total and count

Page 7: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Questions• What is stored in total and count in

the following statements?

double total = 15.5;total++;

int total = 10, count = 5;total = total + count++;

int total = 20, count = 3;total = total / --count;

total 16.5

total count15 6

total count10 2

Page 8: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Escape Sequences in output• Escape character \• Used to represent special characters

inside Strings• Escape sequences

– \n - newline– \t - tab– \b - backspace– \r - return– \\ - backslash– \' - single quote– \" - double quote

Page 9: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

ExamplesSystem.out.println ("I said, \"Hi There!\"");I said, "Hi There!"

System.out.print ("Hello\n");System.out.println ("World");HelloWorld

System.out.println ("Hello\rWorld");HelloWorld

System.out.println ("Hi\b\bHello");Hello

System.out.println ("Hello\tWorld");Hello World

Page 10: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

QuestionsWhat is output by the following statements?

System.out.println ("Helen says " + "\"What\'s up?\"");

System.out.print ("Enter a number ");System.out.println ("between 1-10");System.out.print ("\n\tplease!");

Helen says "What's up?"

Enter a number between 1-10

please!

Page 11: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

The class String• String variables are reference

variables• Given String name;

– Equivalent Statements:

name = new String("Lisa Simpson");name = "Lisa Simpson";

Page 12: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

name = "Lisa Simpson";

Lisa Simpson

Lisa Simpson

Lisa Simpson

Page 13: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

The class String• The String object is an instance of class

string• The value “Lisa Simpson” is instantiated• The address of the value is stored in

name• The new operator is unnecessary when

instantiating Java strings• String methods are called using the dot

operator

Page 14: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Common String Methods• String(String str)

– constructor– creates and initializes the object

• char charAt(int index)– returns char at the position specified by index

(starts at 0)• int indexOf(char ch)

– returns the index of the first occurrence of ch• int compareTo(String str)

– returns negative if this string is less than str– returns 0 if this string is the same as str– returns positive if this string is greater than str

Page 15: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Common String Methods• boolean equals(String str)

– returns true if this string equals str• int length()

– returns the length of the string• String replace(char toBeReplaced, char replacedWith)– returns the string in which every occurrence of toBeReplaced is replaced with replacedWith

• String toLowerCase()– returns the string that is the the same as this string, but

all lower case• String toUpperCase()

– returns the string that is the same as this string, but all upper case

Page 16: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

String ExamplesString str = "Go Trojans!";

System.out.println (str.length());

System.out.println (str.charAt(3));

System.out.println (str.indexOf('!');

System.out.println (str.toLowerCase());

T

12

11

go trojans!

Page 17: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Glossary Terms• Class - used to group a set of

related operations (methods), allows users to create their own data types

• Method - set of instructions designed to accomplish a specific task

• Package - collection of related classes

• Library - collection of packages

Page 18: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Package

java.langjava.appletjava.awtjavax.swingjava.netjava.utiljavax.xml.parsers

Purpose

General supportCreating applets for the webGraphics and graphical user interfacesAdditional graphics capabilities and componentsNetwork communicationUtilitiesXML document processing

Packages• The classes of Java library are organized

into packages.• Some of the packages in the standard

class library are:

Page 19: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Using PackagesWe need to import some of the packages we want to use– java.util for Scanner– not java.lang because it's automatically

imported for us

import packageName;– import java.util.*;

• imports all of the classes in the java.io package– import java.util.Scanner;

• imports only the Scanner class from the java.util package

Page 20: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Using Predefined Classes and Methods• long Math::round (double);

• To use a method you must know:– Name of class containing method

(Math)– Name of package containing class

(java.lang)– Name of method (round), its

parameters (double a), what it returns (long), and function (rounds a to the nearest integer)

Page 21: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Using Predefined Classes and Methods• Example method call:int num = (int) Math.round (4.6);

– why don't we have to import the Math class?

• (Dot) . Operator: used to access the method in the class

Page 22: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Java Program Skeletonimport statements if any

public class ClassName{

declare named constants and/or stream objects

public static void main (String[] args) throws IOException{variable declarationsexecutable statements}

}

Page 23: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Import Statements• Tell the compiler which packages are

used in the program• Import statements and program

statements constitute the source code

• Source code saved in a file with the extension .java

• Source code file must have the same name as the class with the main method

Page 24: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

The main method• Heading

• Body– statements enclosed by { }– declaration statements

• used to declare things such as variables– executable statements

• perform calculations, manipulate data, create output, accept input, etc.

public static void main (String[] args)

Page 25: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

static• Heading of the main method has

the reserved word static

• Statements to declare named constants and input stream objects are outside the main method

• These must also be declared with the static reserved word

Page 26: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Syntax• Syntax

– beware! a syntax error in one place might lead to syntax errors in several other places

• Use of semicolons, braces, commas– all Java statements end with semicolon– braces {} enclose the body of a method and

cut it off from other parts of the program (also have other uses)

– commas separate list items

Page 27: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Style• Semantics

– set of rules that gives meaning to a language– beware! the compiler will not be able to tell

you about semantic errors (example: missing parentheses in mathematical expression)

• Documentation– comments - shown in green in Eclipse– naming rules

• use meaningful identifiers– prompt lines

• let the user know what type of input is expected

Page 28: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Style and White Space• White space

– blanks, tabs, blank lines– used to separate words and symbols– extra space is ignored by computer– blank line between variable declaration and

rest of code

• Programs should be formatted to enhance readability, using consistent indentation

Page 29: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Comments• Not used by the computer

– only for human consumption

• Used to help others understand code– explain and show steps in algorithm– comments are essential!

• Should be well-written and clear

• Comment while coding

• Also called inline documentation

Page 30: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

/**************************************************************** * Program 0: Hello World * * Programmer: Joshua Stough * * Due Date: September 2, 2008 * * Class: COMP 14 Instructor: Dr. Joshua Stough * * * Description: This program prints out a greeting to the world. * * Input: None * * Output: A friendly greeting ***************************************************************/

public class HelloWorld{

public static void main(String[] args) { System.out.println ("Hello World!");}

}

comment

class declarationmain method method call

Page 31: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Review• In the Java programming language:

– a program is made up of one or more classes– a class contains one or more methods– a method contains program statements

• A Java application always contains a method called main• Source code saved in a file with the

extension .java• File must have the same name as the class

with the main method• Use the dot (.) operator to call methods:

Math.round

Page 32: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Review-Skeletonimport statements if any

public class ClassName{

declare named constants and/or stream objects

public static void main (String[] args) throws IOException

{variable declarationsexecutable statements

}}

Page 33: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Review QuestionsWhat is stored in num?int num = (int) Math.round (12.7);

What is printed to the screen? Assume the user enters 10 and that scan is already defined.System.out.print ("Enter a number: ");int num = scan.nextInt();System.out.println (num * num);

13

Enter a number: 10100

Page 34: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Questions• What is stored in total and count in

the following statements?

int total = 10, count = 5;total += count++;

int total = 20, count = 3;total /= --count;

String str = "CSCI";str += 51;

total count15 6

total count10 2

strCSCI51

Page 35: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Java Variables• Primitive Variables

– primitive data types (int, double, ...)– stores the data in the memory

location

• Reference Variables– stores an address in the memory

location– "points to" another memory location

Page 36: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Objects• More complex data type than a

primitive data type• Stored in the "other" memory

location– is "pointed to" by a reference variable

• Is operated on by special operators called methods

Page 37: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Objects and Classes• An object's data type is a class• The class contains the data types

that make up the object and what methods can operate on the object

• Examples:– String– Integer– Double

Page 38: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Primitive Variablesint x = 45;

• When the computer sees x, it knows which memory location to look up the value in

Page 39: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Reference VariablesInteger num;

• When the computer sees num, it knows which memory location to look for the address in

• It will read the address in num and look up a value in that memory location

Page 40: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Creating Objects• We use the new operator to create

objects, called instantiation Integer num;num = new Integer(78);

parameter

Page 41: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Review the Terms• We declare a reference variable of

a class type.• We use the new operator to

instantiate an object of that class type.

• We store the address of that object in the reference variable.

Page 42: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Changing the Reference Var

num = new Integer (50);• The address of the newly-created object

is stored in the already-created reference variable num

Page 43: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Garbage Collection• What happened to the memory space

that held the value 78?• If no other reference variable points to

that object, Java will "throw it away"

Page 44: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

System.out.println (”Hello World!”);

objectmethod

information provided to the method

(parameters)

Using Objects• System.out object

– represents a destination to which we can send output

• Example:– println method

dot operator

Page 45: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Questions1. True or False. A primitive variable is a variable that

stores the address of a memory space.

2. The operator is used to create a class object.

3. In Java, the operator is used to access members of a class. It separates the class (or object) name from the method name.

4. True or False. Class objects are instances of that class.

new

dot (.)

False

True

Page 46: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Example Program• MathStats.java

• Ask the user for 3 integers.• Output the following:

– the 3 numbers– the sum– the average– the sum squared– the square root of the sum

Page 47: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Force Errors Try the following in MathStats.java

to see what error message is displayed:– comment out import statement– comment out throws clause– make sumSquare an int– don't initialize sum– don't cast average to double

(semantic error)

Page 48: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Summary• Increment/decrement• primitive variables vs. reference

variables• objects• dot (.) operator• String class

Page 49: CSCI 51 Introduction to Computer Science Joshua Stough February 3, 2009

Next Time in CSCI 51

• Using dialog boxes for I/O• Tokenizing Strings• Formatting output• Reading from and writing to text

files• If, if/else statements


Recommended