<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="tech-gobject" xml:lang="es">
  <info>
    <link type="guide" xref="tech" group="gobject"/>

    <credit type="author copyright">
      <name>Federico Mena Quintero</name>
      <email its:translate="no">federico@gnome.org</email>
      <years>2013</years>
    </credit>

    <include xmlns="http://www.w3.org/2001/XInclude" href="cc-by-sa-3-0.xml"/>

    <desc>Objetos basados en C y sistema de tipos con señales y «slots»</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Daniel Mustieles</mal:name>
      <mal:email>daniel.mustieles@gmail.com</mal:email>
      <mal:years>2011-2019</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Jorge González</mal:name>
      <mal:email>jorgegonz@svn.gnome.org</mal:email>
      <mal:years>2007-2010</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Mario Carrión</mal:name>
      <mal:email>mario@monouml.org</mal:email>
      <mal:years>2006</mal:years>
    </mal:credit>
  </info>

<title>GObject</title>

  <p>GObject es parte de la biblioteca <link xref="tech-glib">GLib</link> que proporciona un sistema de objetos y tipos para programas en C. Aunque C es un lenguaje que no proporciona objetos ni clases, GObject hace que sea posible escribir en C programas orientados a objetos.</p>

  <p>GObject proporciona un GType fundamental, la base para todo el sistema de tipos y del que derivan tipos como enteros y cadenas. Por lo tanto, hay un GObject como tal, que es la clase base para todas las demás clases. Los objetos pueden emitir <em>señales</em> para notificar que ha sucedido algo interesante. Por ejemplo, un objeto <code>Button</code> puede emitir una señal <code>clicked</code> para indicar que se ha pulsado y soltado.</p>

  <p>GObject se puede <em>introspeccionar</em>, lo que significa que puede preguntar al sistema de GObject los tipos de clases que están definidas, los métodos que soporta, sus señales, etc. Las vinculaciones de de lenguajes de GNOME se construyen sobre la información de introspección. En lugar de escribir envoltorios a mano para llamar a las API de GNOME desde otros lenguajes de programación, las vinculaciones de los lenguajes usan la información de la introspección de GObject para generar automáticamente los propios envoltorios.</p>

  <p>Normalmente no necesita preocuparse de GObject como tal si está programando para GNOME con un lenguaje orientado a objetos. Sin embargo, familiarizarse con los conceptos de GObjetc, como pueden las señales y los «slots» simplificarán su vida como programador.</p>

  <list style="compact">
    <item><p><link href="http://developer.gnome.org/gobject/stable/">Manual de referencia de GObject</link></p></item>
  </list>

</page>
