public class Edge { protected Node node1, node2; protected String sName; // Constructor methods .... public Edge() {} public Edge( Node node1, Node node2 ) { this.node1 = node1; this.node2 = node2; } public Edge( String sName, Node node1, Node node2 ) { this.node1 = node1; this.node2 = node2; this.sName = sName; } // Compute edge length ... public double length () { return node1.sub(node2).length(); } // Convert node to a string ... public String toString() { return "Edge(\"" + sName + "\") connects nodes (" + node1.sName + ", " + node2.sName + ")"; } // Exercise methods in the Edge class ..... public static void main( String args[] ) { System.out.println( "Exercise methods in Edge class" ); System.out.println( "==============================" ); // Create "Edge 1" ..... Edge eA = new Edge(); eA.node1 = new Node ("Point 1", 0.0,0.0); eA.node2 = new Node ("Point 2", 5.0,0.0); eA.sName = "Edge 1"; // Create "Edge 2" and "Edge 3" .... Node node3 = new Node ("Point 3", 5.0,5.0); Edge eB = new Edge ("Edge 2", eA.node2, node3 ); Edge eC = new Edge ("Edge 3", node3, eA.node1 ); // Create details of edges .... System.out.println( eA.toString() ); System.out.println( eB.toString() ); System.out.println( eC.toString() ); // Compute and print lengths of each edge .... System.out.println( "Length (" + eA.sName + ") = " + eA.length() ); System.out.println( "Length (" + eB.sName + ") = " + eB.length() ); System.out.println( "Length (" + eC.sName + ") = " + eC.length() ); } }