1 / 28

Object-Oriented Software Engineering

Object-Oriented Software Engineering. Object-Orientation and Java. Object-Orientation & Java. Contents Getting Started A Little Bit of Syntax Differences between C and Java. Getting Started. Goto: http://java.sun.com Download the Java Software Development Kit (SDK) Its free!

buzz
Télécharger la présentation

Object-Oriented Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object-Oriented Software Engineering Object-Orientation and Java

  2. Object-Orientation & Java Contents • Getting Started • A Little Bit of Syntax • Differences between C and Java

  3. Getting Started • Goto: http://java.sun.com • Download the Java Software Development Kit (SDK) • Its free! • Download the Documentation • Also free! (http://java.sun.com/docs/books/tutorial) • Buy JAVA In a Nutshell, by David Flanagan, Publ. O’Rielly • It’ll cost you, sorry!

  4. File extensions in Java Java Virtual Machine Byte code Source javac (compiler) .class JVM Any Hardware (that supports the JVM) .java

  5. What you get in the JDK

  6. JDK Swing Basics Applet Dialog Frame  Top-Level Containers Java JDK provides a collection of Foundation classes to allow easy implementation of GUI-s (Graphical User Interface)For this lecture borrowed heavily from:http://java.sun.com/docs/books/tutorial/information/

  7. JDK Swing Basics General-Purpose Containers Panel Scroll pane Split pane Tabbed pane Tool bar

  8. JDK Swing Basics Internal frame Layered pane Root pane Special-Purpose Containers

  9. JDK Swing Basics Buttons Combo box List Menu Slider Spinner Text field or Formatted text field Basic Controls  

  10. JDK Swing Basics Uneditable Information Displays Label Progress bar Tool tip

  11. JDK Swing Basics Interactive Displays of Highly Formatted Information   File chooser Color chooser Text Tree Table

  12. Object-Orientation & Java Contents • Getting Started • Some Syntax • Differences between C and Java

  13. Defining a Class { members Account publicclassAccount { publicintnumber; publicdoublebalance; publicvoidcredit(double x) { // do some sums } publicvoiddebit(double y) { // do checking then sums } } number balance fields credit debit methods

  14. “Circle” Example Circle radius circumference area public class Circle { } public static final double PI = 3.14159; public double radius; public double circumference() { return 2 * PI * radius; } public double area() { return PI * radius * radius; }

  15. The “Circle” class public class Circle { // A class field public static final double PI= 3.14159; // A useful constant // A class method: just compute a value based on the arguments public static double radiansToDegrees(double rads) { return rads * 180 / PI; } // An instance field public double r; // The radius of the circle // Two instance methods: they operate on the instance fields // of an object public double area() { // Compute the area of the circle return PI * r * r; } public double circumference() { // Compute the circumference return 2 * PI * r; } }

  16. The “main” method public class Circle { public double r; // The radius of the circle public double area() { // Compute the area of the circle return PI * r * r; } public double circumference() { // Compute the circumference return 2 * PI * r; } } public static void main(String[] args) { int input = Integer.parseInt(args[0]); Circle c = new Circle(); c.r = input; double result = c.circumference(); System.out.println(result); }

  17. The “main” method Call to Integer Class Integer Class Static Method parameters to method call int input = Integer.parseInt(args[0]);

  18. Put “main” in a new class? public class MakeCircle { public static void main(String[] args) { int input = Integer.parseInt(args[0]); Circle c = new Circle(); c.r = input; double circum = c.circumference(); System.out.println(circum); double a = c.area(); System.out.println(a); } }

  19. An Association Circle MakeCircle radius creates instances of main circumference area

  20. Make Circle Execution java MakeCircle 34 Java Interpreter Circle c = new Circle(); :MakeCircle <<creates>> main([“34”]) c :Circle <<creates>> c.r = input; r c.circumference(); circumference() area() c.area();

  21. File extensions in Java Java Virtual Machine Byte code Source javac (compiler) .class JVM Any Hardware (that supports the JVM) .java

  22. The Circle example C:\Java contains Circle.java and MakeCircle.java C:\>cd Java C:\Java>javac Circle.java C:\Java>javac MakeCircle.java C:\Java now also contains Circle.class and MakeCircle.class C:\Java>java MakeCircle 4 25.13272 50.26544 C:\Java>java MakeCircle 5 31.4159 78.53975

  23. Object-Orientation & Java Contents • Getting Started • A Little Bit of Syntax • Differences between C and Java

  24. Differences • No Preprocessor • No analogues of #define, #include, #ifdef • Constants are replaced by static final fields • No Global Variables • Avoids possibility of namespace collisions • We will see later how you can make a constant or variable globally accessible

  25. Java vs. C • Well-defined primitive type sizes • Removes this as a platform dependency • No pointers • Although Java Classes and Arrays are reference types, these references are “opaque”. No “address of” or “dereference” operators • This is not a handicap and eliminates an important source of bugs

  26. Java vs. C • Garbage Collection • Objects are “tidied away” as soon as there are no further references to them • So, no need to explicitly manage memory • Eliminates memory leaks • No goto statement • Adds exception handling and labelled break and continue statements

  27. Java vs. C • Variable declarations anywhere • Java allows local variable definitions to be made anywhere in a method or block • Good practice to group them, though • Forward references • Methods can be invoked before they are defined (we’ll see why it is important to be able to do this)

  28. Java vs. C • Method overloading • Multiple methods can be defined with the same name, so long as they have different parameter lists • No struct and union types • No enumerated types • No bitfields • No typedef • No method pointers • No variable-length argument lists

More Related