Определяя поле cost
как static
, вы говорите, что когда-либо будет только один общий экземпляр этой переменной, независимо от того, сколько классов Car создано (в процессе). И да, любой изэти экземпляры смогут изменять это одно общее поле, и поскольку вы сделали его общедоступным, то же самое можно сказать и о любом другом клиентском коде, который имеет доступ к классу Car
.(Другие процессы, которые могут использовать те же классы, будут иметь свои собственные копии статических членов класса и не смогут «видеть» через границы процесса.)
Семантически говоря, и если я выведу значение для Carи стоит правильно, вы не хотите использовать статический, если вы не хотите, чтобы все ваши автомобили стоили одинаково.В реальном мире стоимость автомобиля является очень изменчивым атрибутом даже между одной и той же моделью автомобиля одной и той же марки из-за отделки салона, опций и т. Д.