Introduction to Programming with Java

nutmegactΛογισμικό & κατασκευή λογ/κού

10 Νοε 2012 (πριν από 4 χρόνια και 10 μήνες)

214 εμφανίσεις

Getting Started

Programming



Programming consists of two steps:


design (the architects)


coding (the construction workers)



Programming requires:


a programming language to express your ideas


a set of tools to design, edit, and debug your code


either


a compiler to translate your programs to machine code


a machine to run the executable code


or


an interpreter to translate and execute your program


Algorithm design


Pancakes

800g flower

4 tsp sucker

1 tsp salt

12 eggs

16 dl milk

12 sp water

1.
Pour the milk in a bowl

2.
Pour the water in the bowl

3.
Add the salt

4.
Add the sucker

5.
As long as there are eggs left

1.
Take an egg

2.
Break the egg

3.
Put in the bowl

6.
Add the flower

7.
Turn the dew

Coding


A Java program for a Pancake

Robot




double kiloFlower = 0.8;


int tspSugar = 4;


int tspSalt = 1;


int noEggs = 12;


int dlMilk = 16;


int spWater = 12;



Robot.pourMilkInBowl(dlMilk);


Robot.pourWaterInBowl(spWater);


Robot.putSaltInBowl(tspSalt);


Robot.putSugarInBowl(tspSugar);




Variables are declared before they are used

The program is read sequentially from top to bottom

Coding







Robot.putSugarInBowl(tspSugar);




While (noEggs > 0)


{


NoEggs = NoEggs
-
1;


Robot.breakEgg();


Robot.putEggInBowl();


}


Robot.putFlowerInBowl(kiloFlower);


Robot.turnDew();



Making decisions

based on logical expressions

What is Java?


A programming language


Fully buzzword
-
compliant:



A simple, object oriented, distributed, interpreted,
robust, secure, architecture neutral, portable, high
performance, multithreaded, dynamic language.



From:

Java: An Overview




James Gosling, Sun Microsystems,



February 1995.

What Else is Java?


According to Gosling:


“An environment”


“A platform”


“A way of thinking”


…ok, whatever



Java is a phenomenon


Took the world by storm in 1995 when
introduced with the HotJava web Browser


Quickly integrated with Netscape browser

What is Java?


Java is a general
-
purpose, high
-
level
programming language
.


The features of Java


Java program is both
compiled and interpreted
.


Write once, run anywhere


Java is a software
-
only
platform

running
on
top of other, hardware
-
based platforms
.


Java Virtual Machine (Java VM)


The Java Application Programming Interface

(JAVA API)

How Will Java Change My Life?


Get started quickly


Write less code


Write better code


Develop programs faster


Avoid platform dependencies with 100%
pure Java


Write once, run anywhere


Distribute software more easily

Features of Java


Simple


Architecture
-
neutral


Object
-
Oriented


Distributed


Compiled



Interpreted


Statically Typed


Multi
-
Threaded


Garbage Collected


Portable


High
-
Performance


Robust


Secure


Extensible


Well
-
Understood

Some History


1993 Oak project at Sun


small, robust, architecture independent, Object
-
Oriented,
language to control interactive TV.


didn’t go anywhere


1995 Oak becomes Java


Focus on the web


1996 Java 1.0 available


1997 (March) Java 1.1
-

some language changes, much larger
library, new event handling model


1997 (September) Java 1.2 beta


huge increase in libraries
including Swing, new collection classes, J2EE


1998 (October) Java 1.2 final (Java2!)


2000 (April) Java 1.3 final


2001 Java 1.4 final (assert)


2004 Java 1.5 (parameterized types, enum, …) (Java5!)


2005 J2EE 1.5

java.applet, java.awt, java.io, java.lang, java.net, java.util

java.math, java.rmi, java.security, java.sql, java.text, java.beans

javax.accessibility, javax.swing, org.omg

javax.naming, javax.sound,

javax.transaction

java.nio, javax.imageio,

javax.net, javax.print,

javax.security, org.w3c

javax.activity,

javax.

management

Java 1.0

8 packages

212 classes

Java 1.1

23 packages

504 classes

Java 1.2

59 packages

1520 classes

Java 1.3

77 packages

1595 classes

Java 1.4

103 packages

2175 classes

Java 1.5

131 packages

2656 classes

New Events

Inner class

Object
Serialization

Jar Files

International

Reflection

JDBC

RMI

JFC/Swing

Drag and
Drop

Java2D

CORBA

JNDI

Java Sound

Timer

Regular Exp

Logging

Assertions

NIO

Java Applications and Java … lets


Stand
-
alone Applications


Just like any programming language


Applet


Run under a Java
-
Enabled Browser


Midlet


Run in a Java
-
Enabled Mobile Phone


Servlet


Run on a Java
-
Enabled Web Server


Switchlet




Java Developer's Kit (I)


Java's programming environment


Core Java API


compiler


interpreter


debugger


dis
-
assembler


profiler


more...

Java Developer's Kit (II)

Java

Compiler

Java

Interpreter

Java Source

Java Bytecode

<file>.java

<file>.class

Java

Dis
-
assembler

Prepare and Execute Java

Source Computer

Java Program

Compilation

Java ByteCode

Your computer

Java ByteCode

Execution

Restricted Env.

Verification

Internet

Write Once, Run Anywhere

ByteCode: Food for the VM


For most languages, compilation
produces machine code


Java compilation produces “bytecode”


Intermediate code readable by the VM


Transferable across the Internet as
applets


VM interprets BC into instructions


Partly responsible for performance lag


ByteCode produced on any platform
may be executed on any other platform
which supports a VM

virtual machine

execution model of Java

source

(text)

compiler

CPU

bytecode

interpreter

dynamic

loading

JIT

compiler

compiled

code

JVML

verifier

bytecode

(aka. class file)

The JIT


Just
-
In
-
Time

compiler


Translates bytecode into machine code
at runtime


1
-
time overhead when run initiated


Performance increase 10
-
30 times


Now the default for most JVM’s


Can be turned off if desired


JIT can apply statistical optimizations
based on runtime usage profile

Not just
one

JVM, but a whole
family


JVM (J2EE & J2SE)


Well
-
known Java Virtual Machine.


CVM, KVM (J2ME)


Small devices.


Reduces some VM features to fit resource
-
constrained devices.


JCVM (Java Card)


Smart cards.


It has least VM features.



And there are also lots of other JVMs

Java Platform & VM & Devices

Java VM and API


Java API and Virtual
Machine insulate the
Java program from
hardware
dependencies
.


Java API

Java API


Collection of ready
-
made software
components that
provide many useful
capabilities.


Grouped into libraries
(
packages
) of related
components.


Core API


Essentials: Object,
String, Input and
Output...


Applets


Networking


Internationalization


Security


Software Components


Object Serialization


Java Database
Connectivity (JDBC)


Java 2 Platform

The “Hello World” Application

Create a Java Source File

public class HelloWorld {

public static void main(String[] args) {

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

}

}

Compile and Run


Compile


javac HelloWorld.java


One file named HelloWorld.class is
created if the compilation is succeeds.


Run


java HelloWorld

examples

Programming tasks

Write code

compile

Correct errors

Run program

The Simplest Java Application:
Hello,World!


Since Java is object
-
oriented, programs are organized into modules
called classes, which may have data in variables and subroutines
called methods.


class HelloWorld

{ public static void main (String[] args)


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


}

}

Each program is enclosed in a class definition.

main() is the first method that is run.

The notation class.method or
package.class.method is how to refer
to a public method (with some
exceptions).

Syntax is similar to C
-

braces for
blocks, semicolon after each statement.
One difference: upper and lower case
matter!

Command Line Programming


First you have to code and edit your program in the text editor of
your choice and remember to save your file in the form of
SomeClass.java.


Then you must go to the command line (hence Command Line
Programming) and set the Path for your Java Virtual Machine if you
have not done so already.


Then compile your program by typing:




javac SomeClass.java


If you have errors you must go back to your editor fix and resave
your file, which can be a pain.


Once all errors are gone you will get a file called SomeClass.class.


Once that happens you can type: java SomeClass.java and observe
your output.

Integrated Development
Environments (IDE)


JCreator, Eclipse, and NetBeans use the following concepts to
manage the files for a project:


A Workspace in which multiple projects are stored


A Project in which multiple files are stored


Source files with the extension .java containing human
-
readable
program statements


created by you in an editor


Class files with the extension .class containing machine
-
readable program logic


Created by the Java compiler



NetBeans 4.1

examples

The “Hello World” Applet

Create a Java Source File

HelloWorldApplet.java


import java.applet.Applet;

import java.awt.Graphics;


public class HelloWorldApplet extends Applet
{


public void paint(Graphics g) {


g.drawString(“Hello World!”, 5, 25);


}

}

Compile the Source File


javac HelloWorldApplet.java


One file named HelloWorldApplet.class is
created if the compilation is succeeds.

Displaying your applet from a Web page.


Create an HTML file with an applet tag to display the results of
drawing the applet.

<html><head>

<title>Simple Hello Page</title>

</head>

<body>

My Java applet says:

<applet code=“HelloWorldApplet.class” width=150 height=25>

</applet>

</body></html>

Name of your applet class.

The browser will use a rectangle of width 150 pixels and height 25
pixels to display the applet within the other html.

The Simplest Java Applet: Hello, World!


Java applets are part of the class hierarchy that can call methods to
display on a screen (within the browser window). One way to draw on
the screen is to call the method drawString from the standard method
paint.

import java.awt.Graphics;


public class HelloWorldApplet extends java.applet.Applet

{ public void paint (Graphics g)


{ g.drawString(“Hello World!”, 5, 25);


}

}

The import statement allows the use of methods from
the Graphics class without the dot notation .

The paint method displays a graphics object on the
screen
-

one of the standard methods that takes the place
of main for applets.

Puts this as a subclass of Applet.

No
main

method


Yes, applets have a
main

method...


...but it's in the
browser
, not in your code!


More about that later in the course …

Say hello to Kara

..
\
kara
\
allkara
-
en.jar

So really, why learn about
programming?


Programmers make lots of money.


Programming really is fun.


Programming is very intellectually rewarding.


Programming makes you feel superior to other
people.


Programming gives you complete control over an
innocent, vulnerable machine, which will do your
evil bidding with a loyalty not even your pet dog
can rival.