ic211 object oriented programming overview of java

18
IC211 Object Oriented Programming Overview of Java

Post on 19-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IC211 Object Oriented Programming Overview of Java

IC211Object Oriented Programming

Overview of Java

Page 2: IC211 Object Oriented Programming Overview of Java

Today’s Topics (Read Chapter 1: An Introduction to Java)

• History of Java• Java Platforms• Java Development Environment• Types of Java Programs• Common Misconceptions• Similarities/Differences with C++• Hello World Java Style

Page 3: IC211 Object Oriented Programming Overview of Java

The “Green Team”

• 1991 - Chartered by Sun to anticipate and plan for the "next wave" in computing. – Patrick Naughton, Mike Sheridan, and James Gosling

• Initial conclusion: “Intelligent” consumer devices

Page 4: IC211 Object Oriented Programming Overview of Java

Oak (aka Java)• White paper buzz words

– Simple

– Object oriented

– Distributed

– Robust

– Secure/safe

– Portable

– Interpreted

– High performance

– Multi-threaded

– Dynamic

Page 5: IC211 Object Oriented Programming Overview of Java

Smart appliances did not catch on…but the Web did!

• World Wide Web popularity in 1993 saved the project

• Oak – C++ style programming language developed for the project

• Dynamic content for web pages• Oak survived and became “Java”• March 1995 Java formally announced.

Page 6: IC211 Object Oriented Programming Overview of Java

Java• Simple

– Similar to C++ in syntax so easy to learn

• Robust– Interpreter checks for and prevents problems– Get rid of pointers (sort of)

• Pointer model eliminates possibility of overwriting memory

– Automatic garbage collection (double edge sword)

• Portable– Write once, run anywhere– Portable because of the Java Virtual Machine– Compile to bytecode, then interpreter executes the bytecode

• Safe– Virtual Machine watches the behavior of the Java program.– Can prevent it from doing certain things:

• Corrupting memory outside its own space

• Read/Write to files without permission

• Over-running the runtime stack (viruses/worms)

• Object Oriented– Written from day one as an Object Oriented programming language– Just because it’s written in Java doesn’t mean it’s object-oriented!

Page 7: IC211 Object Oriented Programming Overview of Java

Java Platforms

• Standard Edition (J2SE)– Basic libraries for applications

– This is what we will be working with

• Enterprise Edition (J2EE)– Web development, client/server applications

– Requires J2SE

• Micro Edition (J2ME) – Used for mobile devices

– Smallest footprint

– Subset of functionality

Page 8: IC211 Object Oriented Programming Overview of Java

Java Development Environment

• Generally there are five phases– Editing

– Compiling

– Loading

– Bytecode verification

– Execution

Page 9: IC211 Object Oriented Programming Overview of Java

Editor

Compiler

Bytecode Verifier

Class Loader

Interpreter…

CPU &

Primary memory

HelloWorld.java

HelloWorld.class

Source Code

Byte Code

Processing a Java Program

Java Virtual Machine

Page 10: IC211 Object Oriented Programming Overview of Java

Bytecode

• To run a Java program on the Java processor, the source file (HelloWorld.java) which is a text file, must be translated into bytecodes.

• The resulting file of bytecode (machine language for the Java processor) is called HelloWorld.class.

• The source file is translated into byte code by the java compiler (javac)

The bytecode file (HelloWorld.class) contains exactly the same bytecodes no matter what computer system created it. The Java compiler on a Sun machine will produce the exact same bytecodes as the Java compiler on an Intel based Windows system.

Page 11: IC211 Object Oriented Programming Overview of Java

Java Virtual Machine (JVM)• The Java Virtual Machine (JVM) is a java interpreter. It is the program

that runs the java program (HelloWorld.class). • Unlike C++ .exe files which are run on a hardware processor, the JVM is

implemented in software…hence Java Virtual Machine. • Any computer system can execute Java bytecode programs if it has a

Java interpreter. The Java interpreter has to be specifically written for the specific processor type of the computer system, but once that is done, the computer system can become a Java virtual machine. That is, it looks like a computer with a hardware Java processor chip and can run Java bytecodes.

• The actual hardware processor is where the program is ultimately run, but the JVM acts as the intermediary so that no matter what type of machine produced the bytecode, it will run on the current machine.

When a Java program is translated into bytecode, the bytecode is exactly the same no matter what computer system is used. This means the bytecodes on a Sun computer can be sent to an Intel based computer and they will run without a problem.

Page 12: IC211 Object Oriented Programming Overview of Java

Types of Programs

• Four types– Application

• Standalone program• Only needs JVM to run

– Applet• Runs in a web browser• JVM built into the browser• http://www.snibbe.com/scott/dynamic/gravilux/gravilux.html• http://zebu.uoregon.edu/nsf/cannon.html

– Servlet• A program that executes on a server machine, usually used to process a request

from a client machine• Request comes from the client, but is executed on the server

– Bean• Reusable software programs that you can develop and assemble easily to create

sophisticated applications • Must adhere to certain specifications

Page 13: IC211 Object Oriented Programming Overview of Java

Common Misconceptions

• Same syntax as C++– On a superficial level…just enough to get you in trouble

• No pointers– Virtually everything is a pointer…java just uses a different model for pointers

• Portable – write once, run everywhere (JVM)– Not always…file i/o, user interfaces, etc. Depends on who wrote the JVM and

how well they followed the specification.

• Interpreted…too slow?– Nothing is free…

– Just-in-time compiler addresses some of it

Page 14: IC211 Object Oriented Programming Overview of Java

Similarities to C++

• The language is made up of expressions, that generally look the same as C++

• Comments are the same. • Types are the same (or similar). • Accessing parts of objects is done with the dot '.'

– Remember String data types and .length()?

• while and for loops are the same. • Arrays start at 0.• Many of the operators ++, --, etc. are the same. • Assignment is =, equality is ==. • The program starts at main().

Page 15: IC211 Object Oriented Programming Overview of Java

Differences from C++

• Multiple files in your project can contain a main() method.• For the most part, one class per file• No header files (.h)• Functions are not called functions, they're called methods. • Parameters are passed by value…but they are pointers!• Two versions of basic data types, i.e., Integer and int• Errors (Exceptions) must be handled (caught) by your program• Automatic garbage collection.

Page 16: IC211 Object Oriented Programming Overview of Java

HelloWorld.java

// HelloWorld.java

/*

* An application to print a welcome message.

*/

public class HelloWorld

{

public static void main(String[] args)

{

System.out.println("Welcome to IC211: Object Oriented Programming");

}

}

Page 17: IC211 Object Oriented Programming Overview of Java

Mystery.java

// Mystery.java

public class Mystery

{

public static void main (String[] args)

{

int lo=0;

int hi=1;

System.out.println(lo);

while (hi<56)

{

System.out.println(hi);

hi = lo + hi;

lo = hi - lo;

}

}

}

Page 18: IC211 Object Oriented Programming Overview of Java

Mystery.java