classdef Auto

  % Private Eigenschaften
  properties ( Access = private )
    typ = '';
    baujahr = 0;
    kilometer = 0;
    geschwindigkeit = 0;
    benzin = 0;
    hu = [01,01,2000];
  end
  % Öffentliche Eigenschaften
  properties ( Access = public )
    rufname = '';
  end

  % Methoden
  methods ( Access = public )
    % Konstruktor  
    function obj = Auto( typ, baujahr ) 
      obj.typ = typ;
      obj.baujahr = baujahr; 
      obj.kilometer = 0; 	      % 0 km 
      obj.geschwindigkeit = 0; 	% 0 km/h
      obj.benzin = 40;	        % 40 Liter im Tank  

      dv = datevec( date );   % aktuelles Datum
      obj.hu(1) = dv(3);
      obj.hu(2) = dv(2);
      obj.hu(3) = dv(1) + 2;    
      end

    function obj = beschleunigen( obj, wieviel ) 
      neueGeschwindigkeit = obj.geschwindigkeit + wieviel; 
      obj.geschwindigkeit = neueGeschwindigkeit;
    end
      
    function obj = hauptuntersuchung( obj )
      obj.hu(3) = obj.hu(3) + 2; 
      fprintf( 'Nächster TÜV am %d.%d.%d \n', ...
               obj.hu(1), obj.hu(2), obj.hu(3) );
    end

    function disp( obj )
        fprintf( 'Objekt der Klasse Auto: \n' );
        fprintf( '   typ = %s;\n', obj.typ );
        fprintf( '   geschwindigkeit = %g;\n', obj.geschwindigkeit );
        fprintf( '   TÜV am %d.%d.%d \n', ...
                 obj.hu(1), obj.hu(2), obj.hu(3) );
    end
   end

end
