Spaces:
Running
Running
| The program defines the class 'Connection'. | |
| Write the class 'EncryptedConnection', which inherits the class Connection. | |
| The class has 2 new string-type attributes, encryption and password. | |
| Implement get methods for these. | |
| In addition, 3 constructor must be written in the class: | |
| 1 | |
| A constructor that takes as parameters speed, encryption(string) and password (also string): | |
| the constructor sets the values of the attirbutes according to the parameters. | |
| 2 | |
| A constructor that takes as its parameter only the speed. | |
| A constructor that sets the speed attribute according to the parameter. | |
| The attribute encryption value is "SHA" and the password is "abcabc". | |
| 3 | |
| A constructor with no parameters at all. | |
| The speed is set to 100, and the other attributes are set to the same values as in the case of constructor 2 | |
| import java.util.Random; | |
| public class Test{ | |
| public static void main(String[] args){ | |
| final Random r = new Random(); | |
| System.out.println("Testing class EncryptedConnection..."); | |
| String[] hash = "SHA SSH ABC LTD SMP DDR OY RNO RKK".split(" "); | |
| String[] passwords = "abc123 pass12 password parrwosd 123456".split(" "); | |
| // Testing inheritance first | |
| Connection y = new EncryptedConnection(); | |
| // Constructors | |
| String selectedH = hash[r.nextInt(hash.length)]; | |
| String passW = passwords[r.nextInt(passwords.length)]; | |
| int speed = r.nextInt(100) + 1; | |
| System.out.println("Creating an encrypted connection with the following parameters"); | |
| System.out.println("(" + speed + ", " + selectedH + ", " + passW + ")"); | |
| EncryptedConnection conn = new EncryptedConnection(speed, selectedH, passW); | |
| System.out.println("Speed: " + conn.getSpeed()); | |
| System.out.println("Protection: " + conn.getEncryption()); | |
| System.out.println("Password: " + conn.getPassword()); | |
| System.out.println(""); | |
| speed = r.nextInt(100) + 1; | |
| System.out.println("Creating an encrypted connection with the following parameters"); | |
| System.out.println("(" + speed + ")"); | |
| conn = new EncryptedConnection(speed); | |
| System.out.println("Speed: " + conn.getSpeed()); | |
| System.out.println("Protection: " + conn.getEncryption()); | |
| System.out.println("Password: " + conn.getPassword()); | |
| System.out.println(""); | |
| System.out.println("Creating an encrypted connection with the following parameters"); | |
| System.out.println("()"); | |
| conn = new EncryptedConnection(); | |
| System.out.println("Speed: " + conn.getSpeed()); | |
| System.out.println("Protection: " + conn.getEncryption()); | |
| System.out.println("Password: " + conn.getPassword()); | |
| System.out.println(""); | |
| } | |
| } | |
| class Connection { | |
| protected int speed; | |
| public Connection(int speed) { | |
| this.speed = speed; | |
| } | |
| public int getSpeed() { | |
| return speed; | |
| } | |
| } | |
| //ADD | |
| class EncryptedConnection extends Connection { | |
| private String encryption; | |
| private String password; | |
| //constructor1 | |
| public EncryptedConnection(int speed, String encryption, String password){ | |
| super(speed); | |
| this.encryption = encryption; | |
| this.password = password; | |
| } | |
| //constructor2 | |
| public EncryptedConnection(int speed){ | |
| super(speed); | |
| this.encryption = "SHA"; | |
| this.password = "abcabc"; | |
| } | |
| //constructor3 | |
| // APPROACH1 | |
| // public EncryptedConnection(){ | |
| // super(100); | |
| // this.encryption = "SHA"; | |
| // this.password = "abcabc"; | |
| // } | |
| //APPROACH2 | |
| // CALL/reuse CONSTRUCTOR2 | |
| public EncryptedConnection() { | |
| this(100); | |
| } | |
| public String getEncryption() { | |
| return encryption; | |
| } | |
| public String getPassword() { | |
| return password; | |
| } | |
| } | |
| Testing class EncryptedConnection... | |
| Creating an encrypted connection with the following parameters | |
| (17, OY, 123456) | |
| Speed: 17 | |
| Protection: OY | |
| Password: 123456 | |
| Creating an encrypted connection with the following parameters | |
| (23) | |
| Speed: 23 | |
| Protection: SHA | |
| Password: abcabc | |
| Creating an encrypted connection with the following parameters | |
| () | |
| Speed: 100 | |
| Protection: SHA | |
| Password: abcabc | |