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
,...