COMP 110 Spring 2009 28
Download
Report
Transcript COMP 110 Spring 2009 28
Announcements
Computers in class on Friday: Lab
Office Hours: Monday 12-2
New students see me after class
Administrative Changes
Exercise after lecture
1
COMP 110 Spring 2009
Today in COMP 110
Review Hardware and Memory
Programs and Compiling
Your first JAVA program!
2
COMP 110 Spring 2009
Before Programming
Need to know basics of a computer
If you drive a car you should know it runs on
gasoline
What’s in the box?
3
COMP 110 Spring 2009
Hardware vs. Software
Hardware
Physical machine
CPU, Memory
Software
Set of instructions for
the machine to execute
4
COMP 110 Spring 2009
Hardware
CPU (Central Processing Unit)
Executes instructions specified by a
programmer
GHz - number of instructions per second, how fast is
the computer
Dual Core - multiple processing units per CPU,
multiple brains
5
COMP 110 Spring 2009
Memory
Holds data for the computer to process
Main Memory (RAM – Random Access
Memory)
Used for intermediate calculations
Used to store the current program itself!
Expensive
Auxiliary Memory (Secondary Memory)
Disk drives, CDs, Flash drives
Cheap
6
COMP 110 Spring 2009
Measuring Memory
Measured in bytes
For example 2 gigabytes (GB) of RAM
Megabyte (MB) = 1 million (106) bytes (or 1,048,576
= 220 bytes)
Gigabyte (GB) = 1 billion (109) bytes (or
1,073,741,824 = 230 bytes)
7
COMP 110 Spring 2009
What is a Byte?
Data, such as numbers and keyboard
characters are stored as series of bits
A bit is a digit with value 1 or 0
Examples
00111010 is a byte with value 58
01000001 is a byte with value 65
01100001 is a byte with value 97
A byte is composed of 8 bits
Just large enough to store a keyboard character
8
COMP 110 Spring 2009
Main Memory
Called RAM (Random Access Memory)
Fast access
Access any location in memory in constant time
Addressable
Every byte has an address that is used when writing
or reading data to memory
9
COMP 110 Spring 2009
What is a Program?
Set of instructions for a computer to
follow
Example instructions:
Add two numbers
Divide two numbers
Store a number at a memory location
10
COMP 110 Spring 2009
Programs
Programs take data as input and
produce a useful result
Example
A spell-checking program takes a text file as input
and produces a list of misspelled words as output
Input
11
Program
Output
COMP 110 Spring 2009
Programming Languages
Modern programming languages (Java,
C/C++) are designed to be human-readable
Called high-level languages
Computers can’t understand high level
languages
A Compiler translates our human-readable
program into a machine-readable program
Compiler is a program as well!
12
COMP 110 Spring 2009
Role of Compilers
Note: Java uses a slightly different
approach, which we’ll see later
Program
Source
Code
Human-readable, What you will be
writing in this class
Compiler
Machine
Code
13
Machine-readable, What the
machine actually executes
COMP 110 Spring 2009
Human- vs Machine Readable
A human-readable instruction to add
two numbers
a = b + c;
The equivalent machine-readable
instruction might look this!
00101101101100101010101101010101010001111
01010100101000101001011101001010101010101
101010100
14
COMP 110 Spring 2009
Review
What we’ve covered so far
Hardware & Memory
Programs and Compiling
Now let’s learn a bit about Java
15
COMP 110 Spring 2009
Java
A high-level programming language
Java source code is human-readable
Originally envisioned as a programming
language for home appliances
Is now the language of choice for
internet applications
Example internet application using Java
16
COMP 110 Spring 2009
Java
Java is an interpreted language
Compiler produces bytecode instead of machine
code
• Bytecode is not quite readable by any machine
When a Java program is run, an interpreter
translates the bytecode into machine code on-thefly
The Java interpreter is called the Java Virtual
Machine (JVM)
17
COMP 110 Spring 2009
Compiling & Running Java
Programs
Compiling a Java program
Humanreadable
Java JVMreadable
18
Running a Java program
Java program
Bytecode interpreter
(Java JVM)
Java compiler
Machine code
Machinereadable
Bytecode program
COMP 110 Spring 2009
Java Interpreter
Why is Java interpreted?
The short answer is portability
Can run the same byte code on any machine!
• No need to recompile for Windows or Mac OS X
Ideal for internet applications
19
COMP 110 Spring 2009
Terminology: Objects/Classes
Class: archetype/blueprint/mold
e.g. Person, Car, Film
Object: concrete instance of a class
e.g. John Hansen, 2006 Scion xB, American Beauty
Classes declare the attributes of objects of its
type and the actions they will perform
Class: all cars have an attribute “make” and action “drive”
Objects: several instance of a class
• each has a specific model: “Scion xB” , “Toyota Matrix”
• but performs the same action: “drive”
20
COMP 110 Spring 2009
Terminology: Variables
Variables/Fields: specific storage/attributes
String title = “Lost in Translation”;
int length = 102;
double stars = 4.5;
Methods: actions a class performs
int add(int x, int y)
int square(int x)
void display(int x)
void clear()
21
COMP 110 Spring 2009
Your First Java Program
Source code on the next slide
Displays a welcome message
Asks the user to input two numbers
Displays the sum of the numbers
22
COMP 110 Spring 2009
Sample Java Program
(Section 1.2)
import java.util.Scanner;
public class FirstProgram{
public static void main(String[] args){
System.out.println("Hello out there.");
System.out.println("I will add two numbers for you.");
System.out.println("Enter two whole numbers on a line:");
int n1, n2;
Scanner keyboard = new Scanner(System.in);
n1 = keyboard.nextInt();
n2 = keyboard.nextInt();
System.out.println("The sum of those two numbers is");
System.out.println(n1 + n2);
}
}
23
COMP 110 Spring 2009
Importing Packages
import java.util.Scanner;
Tells the compiler that this program uses the
class “Scanner” in the package “java.util”
So that when the Scanner class is used later in the program, the
compiler knows what we’re referring to
A package is a library of classes that have
already been defined for you
“java.util” – for various utilities such as reading input from the
keyboard
24
COMP 110 Spring 2009
Begin the program
public class FirstProgram{
…
}
Begin the class “FirstProgram”
A class is just a piece of code that we give a name to
Everything within the curly braces will be part of
“FirstProgram”
25
COMP 110 Spring 2009
Classes
Java programs are rarely written as a
single piece of code all in one file
They are typically divided into separate pieces
called classes
For now, think of classes as pieces of
Java code
26
COMP 110 Spring 2009
Main method
public static void main(String[] args){
…
}
Begin the method called “main”
Everything between the curly braces is part of the
method “main”
Methods contain lines of code that actually
perform some action (statements)
The group of statements within a method make up
the method body
Every Java program has a method called main
27
COMP 110 Spring 2009
So far we have
import java.util.Scanner;
public class FirstProgram{
public static void main(String[] args){
…
}
}
As of yet, the code performs no action
Now for the body of the “main” method
where the action occurs
28
COMP 110 Spring 2009
Output to Screen
System.out.println("Hello out there.");
System.out.println("I will add two numbers for you.");
System.out.println("Enter two whole numbers on a line:");
These statements prints what is in quotes out
to the screen
Example
System.out.println("Hello out there.");
Causes “Hello out there.” to be printed out to screen
29
COMP 110 Spring 2009
Methods and Objects
What does “System.out.println” mean?
“System.out” is an object
Java programs use objects to perform actions
The actions are defined by methods
“println” is a method that prints a
message to the screen
The println method is part of the System.out
object
30
COMP 110 Spring 2009
Invoking Methods on Objects
myCar.start()
Objects
Methods
airplane.land()
System.out.println(“Hi”.)
Argument
31
COMP 110 Spring 2009
Variable
int n1, n2;
Declares “n1” and “n2” as variables that
will be used to store data
int is the data type that will be used for
n1 and n2
int indicates an integer (whole number)
32
COMP 110 Spring 2009
Create Scanner Object
Scanner keyboard = new Scanner(System.in);
Class
Object
Class
Enables the program to read data from the
keyboard
Creates an object of Scanner class called “keyboard”
33
COMP 110 Spring 2009
Call Method on Object
Object
Method
n1 = keyboard.nextInt();
Invoke/Call
Read an integer from the
keyboard and store it in n1
34
COMP 110 Spring 2009
Output to Screen
System.out.println("The sum of those two numbers is");
System.out.println(n1 + n2);
Add n1 and n2
Print the sum to the screen
35
COMP 110 Spring 2009
Sample Java Program
(Section 1.2)
import java.util.Scanner;
public class FirstProgram
{
public static void main(String[] args)
{
System.out.println("Hello out there.");
System.out.println("I will add two numbers for you.");
System.out.println("Enter two whole numbers on a line:");
int n1, n2;
Scanner keyboard = new Scanner(System.in);
n1 = keyboard.nextInt();
n2 = keyboard.nextInt();
System.out.println("The sum of those two numbers is");
System.out.println(n1 + n2);
}
}
36
COMP 110 Spring 2009
Friday
Recitation
jGRASP
Your first Java program
Bring
Laptop (fully charged)
Download Java Development Kit (JDK)
and jGRASP before lab (see webpage)
37
COMP 110 Spring 2009