Ticket classTicket tkt1 = new Ticket("Lughnasa - Banshees welcome", "1st August");
Ticket tkt2 = new Ticket("Imbolg (Free Chicken Sacrifices!)", "1st Feb");
Ticket tkt3 = new Ticket("Beltane - Bring a Virgin", "1st May");
System.out.println(tkt1);
public Ticket(String occasion, String date)public String toString()Ticket objectsprivate String occasion; private String date; private int ticketNumber;
public Ticket(String occasion, String date) {
this.occasion = occasion;
this.date = date;
ticketNumber = nextTicketNumber;
nextTicketNumber = nextTicketNumber + 1;
}
nextTicketNumber?nextTicketNumber as an instance variablenextTicketNumber is an instance variable:
private int nextTicketNumber = 1;
tkt1, tkt2 and tkt3:
nextTicketNumber as a class variablenextTicketNumber is a class variable:
private static int nextTicketNumber = 1;
tkt1, tkt2 and tkt3:
Ticket so farclass Ticket {
private String occasion;
private String date;
private int ticketNumber;
private static int nextTicketNumber = 1;
public Ticket(String occasion, String date) {
this.occasion = occasion;
this.date = date;
ticketNumber = nextTicketNumber;
nextTicketNumber = nextTicketNumber + 1;
}
public String toString() {
// not yet written
}
}
final)static
nextTicketNumber
Ticket.nextTicketNumber
(but you may still not be able to access the variable
depending on its visibility)
private is
preferred, unless the variable is also final,
in which case it might be public)
final modifierfinal in the declaration
final on class variables (static)
to give what are sometimes called named constants
final. Why?final has other uses in Java too, which you can look up, if
interested)
class Lecturer {
private String name;
private Student[] supervisees;
public Lecturer(String name) {
this.name = name;
supervisees = new Student[3];
}
public void addSupervisee(Student stdnt) {
for (int i = 0; i < 3; i = i + 1) {
if (supervisees[i] == null) {
supervisees[i] = stdnt;
break;
}
}
}
}
class Lecturer {
private String name;
private Student[] supervisees;
private static final int MAX_SUPERVISEES = 3;
public Lecturer(String name) {
this.name = name;
supervisees = new Student[MAX_SUPERVISEES];
}
public void addSupervisee(Student stdnt) {
for (int i = 0; i < MAX_SUPERVISEES; i = i + 1) {
if (supervisees[i] == null) {
supervisees[i] = stdnt;
break;
}
}
}
}
public, e.g.
public static final int MAX_SUPERVISEES = 3;
java.lang.Math.PI and java.lang.Math.E
java.lang.Integer.MAX_VALUE and java.lang.Integer.MIN_VALUE,...
java.lang.System.out and java.lang.System.in,...