# Programmazione orientata agli oggetti in Ruby (Ruby on Rails) > Classi, moduli, ereditarietà, mixin, attr_accessor, self, metaprogrammazione di base - 20 domande da colloquio - Junior - [Domande da colloquio: Ruby on Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio.md) ## 1. Come definire una classe in Ruby? **Risposta** In Ruby, una classe è definita con la parola chiave class seguita dal nome della classe (in CamelCase per convenzione) e termina con end. Il metodo initialize funge da costruttore e viene chiamato automaticamente quando si crea una nuova istanza con Class.new. Le variabili di istanza (con prefisso @) memorizzano lo stato di ogni oggetto. ## 2. Qual è il ruolo del metodo initialize in Ruby? **Risposta** Il metodo initialize è il constructor in Ruby. Viene chiamato automaticamente quando un nuovo oggetto viene creato tramite Class.new. Permette di inizializzare le variabili di istanza e di configurare lo stato iniziale dell'oggetto. A differenza di altri linguaggi, il constructor non prende il nome della classe ma si chiama sempre initialize. ## 3. Qual è la differenza tra attr_reader, attr_writer e attr_accessor? **Risposta** Questi tre metodi di classe generano automaticamente gli accessori. attr_reader crea solo un getter (lettura), attr_writer crea solo un setter (scrittura) e attr_accessor li crea entrambi in una volta. Questo evita di scrivere manualmente metodi getter/setter ripetitivi, rendendo il codice più conciso e leggibile. ## Altre 17 domande disponibili - Come funziona l'ereditarietà delle classi in Ruby? - Qual è la differenza tra un module e una classe in Ruby? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Ruby on Rails - [Fondamenti di Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-basics.md): 25 domande, Junior - [Fondamenti di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-fundamentals.md): 18 domande, Junior - [Routing & Controllers](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/routing-controllers.md): 22 domande, Junior - [Fondamenti di ActiveRecord](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-basics.md): 25 domande, Junior - [Views e template ERB](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/views-erb-templates.md): 20 domande, Junior - [Associazioni ActiveRecord](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-associations.md): 24 domande, Mid-Level - [Query ActiveRecord avanzate](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-queries.md): 28 domande, Mid-Level - [Form Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-forms.md): 20 domande, Mid-Level - [Autenticazione e autorizzazione](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/authentication-authorization.md): 22 domande, Mid-Level - [Asset Pipeline moderno e frontend](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-asset-pipeline.md): 18 domande, Mid-Level - [Modalità API di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-api-mode.md): 20 domande, Mid-Level - [Test con RSpec](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-testing-rspec.md): 24 domande, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-job-background-jobs.md): 20 domande, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/action-cable-websockets.md): 18 domande, Mid-Level - [ActionMailer](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/action-mailer.md): 18 domande, Mid-Level - [ActiveStorage](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-storage.md): 20 domande, Mid-Level - [Strategie di caching](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/caching-strategies.md): 20 domande, Mid-Level - [Migrazioni avanzate](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/database-migrations-advanced.md): 20 domande, Mid-Level - [Rails Engines e app modulari](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-engines-modular-apps.md): 18 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/performance-optimization.md): 26 domande, Senior - [Design Pattern in Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-design-patterns.md): 22 domande, Senior - [Metaprogrammazione in Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-metaprogramming.md): 20 domande, Senior - [Sicurezza in Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-security.md): 22 domande, Senior - [GraphQL con Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/graphql-rails.md): 20 domande, Senior - [Deployment e Produzione](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-deployment-production.md): 20 domande, Senior - [Monitoring & Logging](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/monitoring-logging.md): 20 domande, Senior - [Strategie di upgrade di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-upgrade-strategies.md): 18 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-oop