2016-05-06 4 views
3

У меня есть вопрос, где его часть говорит:Java- приращение счетчика, который является переменным классом

Класс автомобиль имеет 4 атрибутов, а именно noOfTyres, аксессуары, марка и контратаки, которые имеют целочисленный тип, Boolean, Строка и целое число соответственно. Счетчик - это переменная класса. Конструктор класса инициализирует все 3 переменные и увеличивает счетчик на единицу.

Я подумал о двух подходах к этой части, и я не уверен, какой из них правильный или если они оба.

Первый:

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;} 

} 

Второй является:

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; 
} 

} 

Какой подход (если любой из них хорошо) подходит на основе типа/количества информации рассмотрен вопрос дал?

ответ

4

Чтобы сделать что-то переменную класса, а не переменную экземпляра, нам нужно сделать это static.

Подробнее о static переменных и как они отличаются от обычных, здесь: https://en.wikipedia.org/wiki/Static_variable

TLDR: ваше первое решение является правильным, Allthough я думаю, что следует читать private static int counter = 0;

+0

Спасибо! Это было полезно: D – Tia

+0

@ Diksha Нет проблем, рад помочь! Если бы это было полезно для вас, я был бы признателен, если бы вы приняли его в качестве ответа. – nhouser9

+0

Несомненно! Я заслужил это! – Tia

Смежные вопросы