Question: Can anyone tell me where i have gone wrong in creating a construtor to call a method in another class file. It tells me constructor cannot be applied to given type

Answer: 
If you remove your constructor declaration from the Student class, then the implicit empty constructor will exist.
But if you declared explicitly a constructor like your `public Student(String firstname, String surname, String total)` then the empty constructor won't be available, unless you add it explicitly to your class.

```
public Student() { };

```

Then you call unexistant methods :

```
newStudent.firstName("my name");

```

The method you want to call, as declared in your Student object is `setFirstName(String firstName)`

Finally in your println calls, you are trying to access the attribut of the object directly instead of using the getters methods.
Some change I made to correct the code :

```
public class Main {
    public static void main(String[] args) {
        Student newStudent = new Student("Toto", "FromStack");
        newStudent.setFirstName("Jack");
        System.out.println(newStudent.getFirstName());
        System.out.println(newStudent.getSurname());
        System.out.println(newStudent.getFullName());
    }
}

```

* You have to call the `constructor` with the good number of parameters
* Prefer set the visibility of the parameter as `private`(look in `Student`) and use `Getters` to acces to them
* Also use `Setters` to changes the values

And here too :

```
public class Student {
    private String firstName;
    private String surname;

    public Student(String firstname, String surname) {
        this.firstName = firstname;
        this.surname = surname;
    }
    // First Name GETTER
    public String getFirstName() {
        return firstName;
    }
    // First Name SETTER
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    // Surname GETTER
    public String getSurname() {
        return surname;
    }
    // Surname SETTER
    public void setSurname(String surname) {
        this.surname = surname;
    }
    //Full Name GETTER
    public String getFullName() {
        return firstName+" "+surname;
    }
}

```

* If you're using Eclipse IDE it cans creat for you the Getters and Setters for you (in `Source`)
* You don't need a `total` attribut because it's just a concatenation of the 2 others, you will never change it alone, if it changes it will be because of a change in one of the 2 attributs, so just a `getFulName()` which will get back both names

And for end you can create an empty constructor if you want to sets the value after, `=""` is not get "null" value for each

```
 public Student() {
            this.firstName = "";
            this.surname = "";
    }

```