2016-05-06 19 views
3

Ich habe eine Frage, wo ein Teil davon sagt:Java- Erhöhen eines Zählers, der eine Klassenvariable

Die Klasse Fahrzeug verfügt über 4 Attribute nämlich noOfTyres, Zubehör, Marke und Zähler, die vom Typ integer sind, Boolean, String und Integer. Counter ist eine Klassenvariable. Der Konstruktor der Klasse initialisiert alle 3 Variablen und inkrementiert den Zähler um eins.

Ich habe über zwei Ansätze für diesen Teil gedacht und ich bin mir nicht sicher, welcher ist richtig oder wenn beide sind.

Die erste ist:

public class Vehicle{ 
    private int noOfTyres; 
    private Boolean accesories; 
    private String brand; 
    private int static counter=0; 
    private int counterNum; 

public Vehicle(int noOfTyres, int accessories, int brand){ 
counter++; 
this.noOfTyres= noOfTyres; 
this.accessories= accessories; 
this.brand= brand; 
counterNum= counter;} 

} 

Das zweite ist:

public class Vehicle{ 
    private int noOfTyres; 
    private Boolean accesories; 
    private String brand; 
    private int counter=0; 


public Vehicle(int noOfTyres, int accessories, int brand){ 
counter++; 
this.counter= counter; 
this.noOfTyres= noOfTyres; 
this.accessories= accessories; 
this.brand= brand; 
} 

} 

Welcher Ansatz (wenn einer von ihnen gut ist) geeignet ist, basierend auf der Art/Menge an Informationen die Frage gab?

Antwort

4

Um etwas eine Klassenvariable anstatt einer Instanzvariable zu machen, müssen wir es static machen.

Mehr zu static Variablen und wie sie sich von Stammkunden sind hier: https://en.wikipedia.org/wiki/Static_variable

TLDR: Ihre erste Lösung ist richtig, allthough ich denke, es private static int counter = 0;

+0

Dank lesen sollte! Das war hilfreich: D – Tia

+0

@Diksha Kein Problem, gerne helfen! Wenn das für Sie nützlich wäre, würde ich es begrüßen, wenn Sie es als Antwort akzeptieren würden. – nhouser9

+0

Sicher! U verdient es! – Tia

Verwandte Themen