Скачать презентацию Chapter 1 Introduction to Computers and Java Objects Скачать презентацию Chapter 1 Introduction to Computers and Java Objects

22e815f5d956d18905dd0d2f669e489f.ppt

  • Количество слайдов: 48

Chapter 1 Introduction to Computers and Java Objects l Background information » important regardless Chapter 1 Introduction to Computers and Java Objects l Background information » important regardless of programming language l Chapter 1 Introduction to Java: an Introduction to Computer Science & Programming - Walter Savitch 1

Brief History of Computing 1940 s - ENIAC, the first high-speed electronic digital computer Brief History of Computing 1940 s - ENIAC, the first high-speed electronic digital computer built at the University of Pennsylvania in 1946 l 1950 s - mainframes (IBM, for example) appeared l 1960 s - time-sharing l Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 2

Brief History of Computing 1970 s - networking and e-mail; development of PCs l Brief History of Computing 1970 s - networking and e-mail; development of PCs l 1980 s - rapid growth of PCs; LANs connecting PCs l 1990 s - Internet and WWW l 2000 s - What do you think? l Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 3

Computer Basics Computer system: hardware + software l Hardware: the physical components l Software: Computer Basics Computer system: hardware + software l Hardware: the physical components l Software: the instructions that tell the hardware what to do l Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 4

Common Hardware Components l Standard Hardware Organization » Central Processing Unit » Interprets and Common Hardware Components l Standard Hardware Organization » Central Processing Unit » Interprets and executes the instructions l (main & auxiliary) l (such as mouse and keyboard) Processor (CPU) Output Devices (such as video display or printer) Input device(s) » mouse, keyboard, etc. l Output device(s) » video display, printer, etc. l Chapter 1 Memory » main & auxiliary » holds data and instructions Memory Input Devices Processor (CPU) CPU and memory are physically housed together Java: an Introduction to Computer Science & Programming - Walter Savitch 5

Physical Organization l l l Keyboard Monitor Chassis » » » Chapter 1 CPU Physical Organization l l l Keyboard Monitor Chassis » » » Chapter 1 CPU memory disk drives I/O connectors etc. Java: an Introduction to Computer Science & Programming - Walter Savitch 6

Two Kinds of Memory l Main » working area » temporarily stores program and Two Kinds of Memory l Main » working area » temporarily stores program and data (while program is executing) l Auxiliary » permanent (more or less) » saves program and results » includes floppy & hard disk drives, CDs, tape, etc. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 7

Running a Program—a set of instructions for a computer to follow Program Data (input Running a Program—a set of instructions for a computer to follow Program Data (input for the program) Chapter 1 Computer Java: an Introduction to Computer Science & Programming - Walter Savitch Output 8

Many Types of Programs l l User-created applications Existing applications » » l word-processor/editor Many Types of Programs l l User-created applications Existing applications » » l word-processor/editor web browser compiler or assembler etc. Operating System » DOS, Microsoft Windows, Mac. OS, Linux, UNIX, etc. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 9

Various Types of User Interfaces l Command-line » type in key words and letters Various Types of User Interfaces l Command-line » type in key words and letters » DOS and UNIX l Menu » parts of DOS and Windows l GUI (Graphical User Interface) » click on icon » also called “event-driven” » Mac. OS, Windows Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 10

Programming Language Hierarchy Chapter 1 Java: an Introduction to Computer Science & Programming - Programming Language Hierarchy Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 11

The highs and lows of programming languages. . . High-Level Language (HLL) » closest The highs and lows of programming languages. . . High-Level Language (HLL) » closest to natural language » words, numbers, and math symbols » not directly understood by hardware » “portable” source code (hardware independent) » Java, C, C++, COBOL, FORTRAN, BASIC, Lisp, Ada, etc. Chapter 1 Machine Language (lowest level) » least natural language for humans, most natural language for hardware » just 0 s and 1 s » directly understood by hardware » not portable (hardware dependent) Java: an Introduction to Computer Science & Programming - Walter Savitch 12

Assembly Language (middle level) l l Chapter 1 a more or less human readable Assembly Language (middle level) l l Chapter 1 a more or less human readable version of machine language words, abbreviations, letters and numbers replace 0 s and 1 s easily translated from human readable to machine executable code like machine code, not portable (hardware dependent) Java: an Introduction to Computer Science & Programming - Walter Savitch 13

Getting from Source to Machine Code l “Compiling a program” translating from a high-level Getting from Source to Machine Code l “Compiling a program” translating from a high-level language source code to machine (object, or executable) code. l “Compiler” a program that translates HLL source code to machine (object, or executable) code. l “Assembly” translating from assemble language source code to machine (object, or executable) code. l “Assembler” a program that translates assembly source code to machine (object, or executable) code. l Compilers need to know the specific target hardware Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 14

Compilers vs. Assemblers vs. Interpreters l l Compilers and Assemblers » translation is a Compilers vs. Assemblers vs. Interpreters l l Compilers and Assemblers » translation is a separate user step » translation is “off-line, ” i. e. not at run time Interpreters - another way to translate source to object code » interpretation (from source to object code) is not a separate user step » translation is “on-line, ” i. e. at run time Source Code Compiler, Assembler, or Object Code Interpreter Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 15

Java Program Translation l l l Both Compilation and Interpretation Intermediate Code: “Byte Code” Java Program Translation l l l Both Compilation and Interpretation Intermediate Code: “Byte Code” » similar to assembly code, but hardware independent Interpreter translates from generic byte code to hardwarespecific machine code Data for Java Program Java Compiler Byte-Code Program Java Virtual Machine Byte-Code Interpreter Machine-Language Instructions Computer Execution of Machine-Language Instructions Output of Java Program Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 16

Java Byte Code l generated by Java compiler » Instead of generating machine language Java Byte Code l generated by Java compiler » Instead of generating machine language as most compilers do, the Java compiler generates byte code. l l l easily translated to machine language of various kinds of computers executed by Java interpreter invisible to programmer » You don't have to know anything about how byte code works to write a Java program. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 17

Why Use Byte Code? Disadvantages: l requires both compiler and interpreter l slower program Why Use Byte Code? Disadvantages: l requires both compiler and interpreter l slower program execution Advantages: l portability » very important » same program can run on computers of different types (useful with the Internet) » Java compiler for new types of computers can be made quickly Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 18

Object-Oriented Programming: OOP l l l A design and programming technique Some terminology: » Object-Oriented Programming: OOP l l l A design and programming technique Some terminology: » object - usually a person, place or thing (a noun) » method - an action performed by an object (a verb) » type or class - a category of similar objects (such as automobiles) Objects have both data and methods Objects of the same class have the same data elements and methods Objects send and receive messages to invoke actions Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 19

Example of an Object Class: Automobile Data Items: » » » » Chapter 1 Example of an Object Class: Automobile Data Items: » » » » Chapter 1 Methods: manufacturer’s name model name year made color number of doors size of engine etc. » Define data items (specify manufacturer’s name, model, year, etc. ) » Change a data item (color, engine, etc. ) » Display data items » Calculate cost » etc. Java: an Introduction to Computer Science & Programming - Walter Savitch 20

Why OOP? l Save development time (and cost) by reusing code » once an Why OOP? l Save development time (and cost) by reusing code » once an object class is created it can be used in other applications l Easier debugging » classes can be tested independently » reused objects have already been tested Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 21

Design Principles of OOP Three main design principles of Object. Oriented Programming(OOP): l l Design Principles of OOP Three main design principles of Object. Oriented Programming(OOP): l l Polymorphism l Chapter 1 Encapsulation Inheritance Java: an Introduction to Computer Science & Programming - Walter Savitch 22

Encapsulation l l Encapsulation means to design, produce, and describe software so that it Encapsulation l l Encapsulation means to design, produce, and describe software so that it can be easily used without knowing the details of how it works. Also known as information hiding. An analogy: l When you drive a car, you don’t have know the details of how many cylinders the engine has or how the gasoline and air are mixed and ignited. l Instead you only have to know how to use the controls. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 23

Polymorphism l l l Chapter 1 Polymorphism—the same word or phrase can be mean Polymorphism l l l Chapter 1 Polymorphism—the same word or phrase can be mean different things in different contexts. Analogy: in English, bank can mean side of a river or a place to put money. In Java, two or more classes could each have a method called output. Each output method would do the right thing for the class that it was in. One output might display a number whereas a different one might display a name. Java: an Introduction to Computer Science & Programming - Walter Savitch 24

Inheritance l l Term comes from inheritance of traits like eye color, hair color, Inheritance l l Term comes from inheritance of traits like eye color, hair color, and so on. l Chapter 1 Inheritance—a way of organizing classes. Classes with properties in common can be grouped so that their common properties are only defined once. Java: an Introduction to Computer Science & Programming - Walter Savitch 25

An Inheritance Hierarchy Vehicle Automobile Sedan Motorcycle Sports Car School Bus Luxury Bus What An Inheritance Hierarchy Vehicle Automobile Sedan Motorcycle Sports Car School Bus Luxury Bus What properties does each vehicle inherit from the types of vehicles above it in the diagram? Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 26

Algorithms l l Chapter 1 Algorithm - a set of instructions (steps) for solving Algorithms l l Chapter 1 Algorithm - a set of instructions (steps) for solving a problem. » must be precise » must be complete May be in a number of different formats. » natural language (such as English) » a specific programming language » a diagram, such as a flow chart » pseudocode - a mix of natural and programming language Java: an Introduction to Computer Science & Programming - Walter Savitch 27

Example of an Algorithm that determines the total cost of a list of items: Example of an Algorithm that determines the total cost of a list of items: 1. Write the number 0 on the blackboard. 2. Do the following for each item on the list: --Add the cost of the item to the number on the blackboard. --Replace the old number on the board by this sum. 3. Announce that the answer is the number written on the board. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 28

Reusable Components Advantages of using reusable components: l saves time and money l components Reusable Components Advantages of using reusable components: l saves time and money l components that have been used before are often better tested and more reliable than new software Make your classes reusable: l encapsulation l general classes have a better chance of being reused than ad hoc classes Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 29

Program Design Process l Design, then code l Design process » » » » Program Design Process l Design, then code l Design process » » » » Chapter 1 define the problem clearly design objects your program needs develop algorithms for the methods of objects describe the algorithms, usually in pseudocode write the code test the code fix any errors and retest Java: an Introduction to Computer Science & Programming - Walter Savitch 30

Testing and Debugging l Even with careful programming, your code could still contain errors Testing and Debugging l Even with careful programming, your code could still contain errors and must be thoroughly tested. Bug—a mistake in a program l Debugging—fixing mistakes in a program l Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 31

Types of Errors l Syntax l Run-Time l Chapter 1 Java: an Introduction to Types of Errors l Syntax l Run-Time l Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch Logic 32

Syntax l l The compiler checks your program to make sure it is a Syntax l l The compiler checks your program to make sure it is a valid Java program. l Chapter 1 The set of grammar rules for a programming language is called the syntax. If your program is not a valid Java program, then the compiler outputs a message indicating a syntax error. Java: an Introduction to Computer Science & Programming - Walter Savitch 33

Syntax Errors l l caught by compiler (“compiler-time error”) automatically found, usually the easiest Syntax Errors l l caught by compiler (“compiler-time error”) automatically found, usually the easiest to fix cannot run code until all syntax errors are fixed error message may be misleading Example: Misspelling a command, for example “rturn” instead of “return” Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 34

Run-Time Errors l l An execution error (during run-time) Not always so easy to Run-Time Errors l l An execution error (during run-time) Not always so easy to fix Error message may or may not be helpful Not detected by the compiler. Example: Division by zero - if your program attempts to divide by zero it automatically terminates and prints an error message. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 35

Logic Errors Just because it compiles and runs without getting an error message does Logic Errors Just because it compiles and runs without getting an error message does not mean the code is correct! l l l Chapter 1 An error in the design (the algorithm) or its implementation » code compiles without errors » no run-time error messages » but incorrect action or data occurs during execution Generally the most difficult to find and fix Need to be alert and test thoroughly » think about test cases and predict results before executing the code Java: an Introduction to Computer Science & Programming - Walter Savitch 36

Logic Error Examples l Algorithm Error: » average. Of. Five. Scores = sum. Of. Logic Error Examples l Algorithm Error: » average. Of. Five. Scores = sum. Of. Scores/2 (should divide by 5) l Implementation Error: » typed in wrong symbol in source code sum = a - b; (should be sum = a + b; ) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 37

Finally! Now, a taste of Java! History l 1991 - James Gosling, Sun Microsystems, Finally! Now, a taste of Java! History l 1991 - James Gosling, Sun Microsystems, Inc. l originally a language for programming home appliances. l later (1994) used for World Wide Web applications (since byte code can be downloaded and run without compiling it). l eventually used as a general-purpose programming language (for the same reason as above plus it is objectoriented). l Why the name “Java”? Not sure - it may just be a name that came during a coffee break and it had not been copyrighted, yet. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 38

Applets vs. Java Applications l Applets » Java programs intended to be downloaded via Applets vs. Java Applications l Applets » Java programs intended to be downloaded via the WWW and run immediately » “little applications” » requires a web browser l Applications » Java programs intended to be installed then run » often larger applications l Chapter 1 Slightly different programming for each, but both are easy to do Java: an Introduction to Computer Science & Programming - Walter Savitch 39

import java. util. *; public class First. Program { A Sample Java Program public import java. util. *; public class First. Program { A Sample Java Program 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 n 1, n 2; Scanner keyboard = new Scanner(System. in); n 1 = keyboard. next. Int(); n 2 = keyboard. next. Int(); System. out. print("The sum of the two numbers is "); System. out. println(n 1 + n 2); System. out. println("Good-bye. "); } } Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 40

Explanation of Code. . . l import statement: import java. util. *; l l Explanation of Code. . . l import statement: import java. util. *; l l Chapter 1 Used to import the package (library) that includes the Scanner class. The Scanner class is a great improvement for reading in data from the keyboard. Java: an Introduction to Computer Science & Programming - Walter Savitch 41

Explanation of Code. . . l Code to begin the program (to be explained Explanation of Code. . . l Code to begin the program (to be explained later): public class First. Program { public static void main(String[ ] args) { l Java applications all have similar code at the beginning » The name of the class differs from one program to another. » Other information about the class might also be included on the first line. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 42

Explanation of Code. . . Code to display a text string: System. out. println( Explanation of Code. . . Code to display a text string: 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. "); l » » Note the “dot” operator. System. out is an object. println is a method that it carries out. Double-quoted text inside the parentheses is an argument to the method. » General syntax: Object_Name. Method_Name(Arguments) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 43

… Explanation of Code. . . l Chapter 1 Code to declare integer variables … Explanation of Code. . . l Chapter 1 Code to declare integer variables named n 1 and n 2 to hold the two whole numbers: int n 1, n 2; Java: an Introduction to Computer Science & Programming - Walter Savitch 44

… Explanation of Code. . . l Code to set up things so the … Explanation of Code. . . l Code to set up things so the program can have keyboard input: Scanner keyboard = new Scanner(System. in); n 1 = keyboard. next. Int(); n 2 = keyboard. next. Int(); » Scanner is a new Java class used for obtaining input from the keyboard. » next. Int() is a method that reads one whole number from the keyboard. » The equal sign is not the same as in math. It means “assign the value on the right to the variable on the left. ” In this case, store the values read from the keyboard into the variables n 1 and n 2. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 45

… Explanation of Code to calculate the sum and display the output: System. out. … Explanation of Code to calculate the sum and display the output: System. out. print("The sum of the two numbers is "); System. out. println(n 1 + n 2); System. out. println("Good-bye. "); » Note the difference between print and println. l » There are no more lines of code, and so the program ends. Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 46

Compiling a Java Program Assuming the Java compiler is already set up and all Compiling a Java Program Assuming the Java compiler is already set up and all the files are in the same folder (subdirectory): l Each class used in a program should be in a separate file. l The name of the file should be the same as the class except with “. java” added to it. l First compile each class definition used in the program. l Next compile the program file: » javac . java (which creates . class) Chapter 1 Java: an Introduction to Computer Science & Programming - Walter Savitch 47

Running a Java Program l l l Chapter 1 Only the class with public Running a Java Program l l l Chapter 1 Only the class with public static void main(String[] args)can be run. » The critical word to look for is main. For Sun Microsystems’ JDK (Java Development Kit), type java . » is the same name used in the original source file . java. » Use just ; do not use . java or . class. Note that you compile in a separate step and invoke the Java interpreter and linker when you run the program. Java: an Introduction to Computer Science & Programming - Walter Savitch 48