/trunk/Examples/java/class/runme.java
Java | 70 lines | 40 code | 16 blank | 14 comment | 1 complexity | d4df2de760e685bae37251f723b7ddc5 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- // This example illustrates how C++ classes can be used from Java using SWIG.
- // The Java class gets mapped onto the C++ class and behaves as if it is a Java class.
- public class runme {
- static {
- try {
- System.loadLibrary("example");
- } catch (UnsatisfiedLinkError e) {
- System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
- System.exit(1);
- }
- }
- public static void main(String argv[])
- {
- // ----- Object creation -----
-
- System.out.println( "Creating some objects:" );
- Circle c = new Circle(10);
- System.out.println( " Created circle " + c );
- Square s = new Square(10);
- System.out.println( " Created square " + s );
-
- // ----- Access a static member -----
-
- System.out.println( "\nA total of " + Shape.getNshapes() + " shapes were created" );
-
- // ----- Member data access -----
-
- // Notice how we can do this using functions specific to
- // the 'Circle' class.
- c.setX(20);
- c.setY(30);
-
- // Now use the same functions in the base class
- Shape shape = s;
- shape.setX(-10);
- shape.setY(5);
-
- System.out.println( "\nHere is their current position:" );
- System.out.println( " Circle = (" + c.getX() + " " + c.getY() + ")" );
- System.out.println( " Square = (" + s.getX() + " " + s.getY() + ")" );
-
- // ----- Call some methods -----
-
- System.out.println( "\nHere are some properties of the shapes:" );
- Shape[] shapes = {c,s};
- for (int i=0; i<shapes.length; i++)
- {
- System.out.println( " " + shapes[i].toString() );
- System.out.println( " area = " + shapes[i].area() );
- System.out.println( " perimeter = " + shapes[i].perimeter() );
- }
-
- // Notice how the area() and perimeter() functions really
- // invoke the appropriate virtual method on each object.
-
- // ----- Delete everything -----
-
- System.out.println( "\nGuess I'll clean up now" );
-
- // Note: this invokes the virtual destructor
- // You could leave this to the garbage collector
- c.delete();
- s.delete();
-
- System.out.println( Shape.getNshapes() + " shapes remain" );
- System.out.println( "Goodbye" );
- }
- }