Java in a Nutshell                                        Benoît Garbinato                                                ...
Object-Oriented Programming          Any object-oriented Programming          language should feature:                enca...
Encapsulation (2)         In Java, a class defines both a specification (type)         and an implementation of that speci...
Inheritance (2)class inheritance ! subtyping " subclassing           interface inheritance ! subtypingJava in a Nutshell ©...
Polymorphism (2)        Polymorphic variables can store objects of varying types        The declared type of a variable is...
Polymorphism (4) Vehicle v1                                                 Vehicle                                       ...
A simple example (2)  import java.applet.Applet;  import java.awt.*;  import java.awt.event.*;  public class Spot extends ...
Development process                                                   Java                                                ...
Questions?             17
Upcoming SlideShare
Loading in...5
×

00 b javaina-nutshell

188

Published on

Java in nutshell

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
188
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "00 b javaina-nutshell"

  1. 1. Java in a Nutshell Benoît Garbinato 1 Goals of this lesson To remind you about: object-oriented programming (OOP) the Java language & platformJava in a Nutshell © Benoît Garbinato 2
  2. 2. Object-Oriented Programming Any object-oriented Programming language should feature: encapsulation inheritance polymorphism Java is such an object-oriented programming languageJava in a Nutshell © Benoît Garbinato 3 Encapsulation (1) Encapsulation is about distinguishing specification from implementations The specification expresses what all objects of some type are expected to do An implementation expresses how some objects of that type are doing itJava in a Nutshell © Benoît Garbinato 4
  3. 3. Encapsulation (2) In Java, a class defines both a specification (type) and an implementation of that specification In Java, an interface defines a “pure” specification It it thus impossible to instantiate (create an instance) 0f an interface One or more Java classes can implement a given interfaceJava in a Nutshell © Benoît Garbinato 5 Inheritance (1) Types and subtypes express specification relationships, i.e., relevant design relationships Classes and subclasses express implementation relationships and are irrelevant at the design level In Java, a class inheritance relationship defines both a subtype and a subclass relationship In Java, an interface inheritance relationship is merely a synonym of subtype relationshipJava in a Nutshell © Benoît Garbinato 6
  4. 4. Inheritance (2)class inheritance ! subtyping " subclassing interface inheritance ! subtypingJava in a Nutshell © Benoît Garbinato 7 Polymorphism (1) Substitution Principle: An object of some subtype of type T can be used wherever an object of type T is required Vehicle v1 = new Vehicle(); Vehicle v2 = new Car(); Vehicle v3 = new Bicycle(); ... myScreen.drawInColor(v1); myScreen.drawInColor(v2); myScreen.drawInColor(v3); ...Java in a Nutshell © Benoît Garbinato 8
  5. 5. Polymorphism (2) Polymorphic variables can store objects of varying types The declared type of a variable is its static type The type of the object a variable refers is its dynamic type The Java compiler checks for static-type violations The Java runtime checks for dynamic-type violations Car c = new Car(); what is the type Vehicle v = new Car(); of c and v ? Java in a Nutshell © Benoît Garbinato 9 Polymorphism (3) Methods calls are also said to be polymorphic, meaning that the dynamic type of the variable rather than its static type determines the method to be called The method of the subclass is said to override the method of the superclass Vehicle v1 = new Vehicle(); Vehicle v2 = new Bicycle();class Vehicle { Vehicle v3 = new Car(); void print(){ System.out.println(”I am a vehicle”);}} v1.print(); v2.print(); v3.print();class Bicycle extends Vehicle {}class Car extends Vehicle { what gets printed? void print(){ System.out.println(”I am a car”);}} Java in a Nutshell © Benoît Garbinato 10
  6. 6. Polymorphism (4) Vehicle v1 Vehicle instance of void print(){...} :Vehiclev1.print(); Vehicle v2 Bicycle Vehicle instance of void print(){...} :Bicyclev2.print(); Vehicle v3 Car Vehicle instance of void print(){...} void print(){...} :Carv3.print(); Java in a Nutshell © Benoît Garbinato 11 A simple example (1) public interface MouseListener { public void mouseClicked(MouseEvent e); // Invoked when the mouse has been clicked on a component. public void mouseEntered(MouseEvent e); // Invoked when the mouse enters a component. public void mouseExited(MouseEvent e); // Invoked when the mouse exits a component. public void mousePressed(MouseEvent e); // Invoked when a mouse button has been pressed on a component. public void mouseReleased(MouseEvent e); // Invoked when a mouse button has been released on a component. } Java in a Nutshell © Benoît Garbinato 12
  7. 7. A simple example (2) import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Spot extends Applet implements MouseListener { private java.awt.Point clickPoint = null; private static final int RADIUS = 7; public void init() { addMouseListener(this); } public void paint(Graphics g) { <HTML> g.drawRect(0, 0, getSize().width - 1, <TITLE> getSize().height - 1); Spot Applet if (clickPoint != null) </TITLE> g.fillOval(clickPoint.x - RADIUS, clickPoint.y - RADIUS, <BODY> RADIUS * 2, RADIUS * 2); <APPLET } public void mousePressed(MouseEvent event) { CODE=Spot.class clickPoint = event.getPoint(); WIDTH=150 repaint(); HEIGHT=150> } </APPLET> public void mouseClicked(MouseEvent event) {} </BODY> public void mouseReleased(MouseEvent event) {} </HTML> public void mouseEntered(MouseEvent event) {} public void mouseExited(MouseEvent event) {} }Java in a Nutshell © Benoît Garbinato 13 Java as programming platform The Java platform consists of... The specification of a programming language The specification of a rich collection of standard Application Programming Interfaces (APIs) The specification of a virtual machine (bytecodes) Various implementations, e.g., one from a Sun Microsystems (JavaSoft), but also others(IBM, BEA Virtual Machines, etc.)Java in a Nutshell © Benoît Garbinato 14
  8. 8. Development process Java Virtual MachineJava in a Nutshell © Benoît Garbinato 15 Java Development Kit (JDK) JDK is a compile-time environment that offers: a reference implementation of the Java language; a reference implementation of the core Java APIs; various development tools, e.g., javadoc, javah, etc. JDK is also a runtime environment that offers: a reference implementation of the Java virtual machine with: incremental garbage collection, green & native threads, just-in-time compilation, etc.Java in a Nutshell © Benoît Garbinato 16
  9. 9. Questions? 17

×