* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download COMP 110 Spring 2009 28
Java syntax wikipedia , lookup
Go (programming language) wikipedia , lookup
Library (computing) wikipedia , lookup
Program optimization wikipedia , lookup
Scala (programming language) wikipedia , lookup
Class (computer programming) wikipedia , lookup
Falcon (programming language) wikipedia , lookup
Object-oriented programming wikipedia , lookup
Name mangling wikipedia , lookup
C Sharp syntax wikipedia , lookup
Interpreter (computing) wikipedia , lookup
Java (programming language) wikipedia , lookup
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