Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Using Java to Illustrate Graph Theory concepts Carol E. Wolf Computer Science Department Pace University What is Java? • Java is an object-oriented programming language developed by Sun Microsystems. • It is widely used on the Internet and was designed to be portable. • The Java Development Kit (JDK) can be downloaded for free from Sun. • It contains a compiler, an interpreter, and many classes. • Java programs are compiled to bytecode, which is independent of the operating system. • Programs come in two varieties, applications and applets. • Java applications are full programs and are executed by an interpreter on the user’s computer. • Java applets require a web browser such as Netscape Communicator or Internet Explorer. • Applets are invoked by an HTML document. Theoretically, they can then be viewed on any computer with an appropriate browser. • Many animations and graphics on web sites have been created using Java applets. • One objection to Java, is that it takes time both to download the files and then start them up. Programs in native code would execute more quickly. • Java has been adopted by a number of computer science departments for programming classes. • It is easier to learn than C++, has fewer complications, and is safer. • It is fully object-oriented, and so students start off with the current (and better) programming paradigm. • However, this is a disadvantage for instructors who have only been teaching procedural languages. Object-Oriented Programming • An object combines both data and methods (algorithms) into one package called a class. • An example is that of an integer (int). An integer object has a value (data) and operations on that data (+, -, *, /, %, ==, <=, etc.) • Integers are primitive objects and do not require definition by the programmer. • Another example is that of a date. A date has integer data: day, month, and year, and operations on that data: equal, before (less than), display, etc. • Java does not (to my knowledge) have a built-in date class. However, it provides a facility for the programmer to create one. • In fact, Java programs are entirely composed of classes such as this. Java and Graphics • Because Java was designed for viewing in a browser, it takes full advantage of screen graphics. • It provides a full range of drawing functions, fonts, and colors. • These are easy for beginners to use and so provide a convenient introduction to the language. • The coordinate system for the screen has the origin in the upper left hand corner. The xaxis extends to the left, but the y-axis extends down. • Measurements on the screen are in terms of pixels, picture elements. • Java has some graphics classes, such as a Point class. These come with JDK. However, they are simple for a programmer to construct as well. class point { private int x, y; point (int x, int y) { this.x = x; this.y = y; } // point (int x, int y) int get_x () {return x;} int get_y () {return y;} void set_xy (int x, int y) { this.x = x; this.y = y; } // void set_xy (int x, int y) }// class point class circle { private point center; private int radius; circle (point center, int radius) { this.center = center; this.radius = radius; } // circle (point center, int radius) public void drawCircle (Graphics page) { int x, y; x = center.get_x (); y = center.get_y (); page.drawOval (x-radius, y-radius, 2*radius, 2*radius); } // public void drawCircle (Graphics page) } // class circle Relationships • The circle class illustrates the relationship of has-a. A circle has a center and a radius. The radius is an integer, a primitive data type, but the center is a point, a data type defined by the programmer. • Two other relationships are is-a and uses-a. • An is-a relationship is one of inheritance. Inheritance is an important feature of any object-oriented language. class drawn_point extends point { protected int radius = 3; drawn_point (int x, int y) { super (x, y); } // drawn_point (int x, int y) void drawPoint (Graphics page) { page.fillOval (x-radius, y-radius, 2 * radius, 2 * radius); } // void drawPoint (Graphics page) } // class drawn_point extends point • Java, unlike C++, does not support multiple inheritance. Instead, a class can implement another class. • This is an example of a uses-a relationship. • The principle classes that are used are listeners. These listen for some event to take place on the applet. • Examples are ActionListener, MouseListener, MouseMotionListener, ItemListener, and AdjustmentListener. public class draw_points extends Applet implements MouseListener { private static char name_char; private named_point newPoint; Graphics page; public void init () { setBackground (Color.cyan); setForeground (Color.blue); page = getGraphics (); name_char = 'A'; addMouseListener (this); } // public void init () private String get_next_name () { String next_name = "A"; next_name = next_name.replace ('A', name_char); name_char = (char) ((int) name_char + 1); return next_name; }// private String get_next_name () public void mouseClicked (MouseEvent event) { int x, y; String next_name = get_next_name (); x = event.getX (); y = event.getY (); newPoint = new named_point (x, y, next_name); newPoint.drawPoint (page); } // public void mouseClicked (MouseEvent event)