Title: Clases en C
1Clases en C
2Los archivos
Java
C
Clase auxiliar
Clase auxiliar
ClaseAux.java
ClaseAux.h
Programa principal (main)
Clase principal (main)
Prog.cpp
include ClaseAux.h
Clase.java
En Java una clase se puede usar si está en el
mismo directorio.
En C para poder usar una clase se requiere
poner incluirla.
3Uso de Clases en C
- Para programadores de Java
4Declaración de una clase en C
- Formato
- class NombreClase
-
- public
- // declaración de atributos y métodos públicos
- private
- // declaración de atributos y métodos privados
Ojo aquí va un
5Ejemplo de una clase en C
- class Rectangulo
- public
- double CalcArea( )
- void Inicializa(double la, double an)
- private
- double largo, ancho
-
6Definición de las funciones miembro de una clase
- Formato
- tipo NombreClase NombreMetodo (lista de
parámetros) -
- estatutos
7Ejemplo.continuación
- double RectanguloCalcArea( )
- return largo ancho
-
- void RectanguloInicializa(double la, double an)
- largo la
- ancho an
8Uso de los objetos
- Una instancia u objeto de la clase se representa
como una variable. - Para crear una instancia u objeto se usa el
siguiente formato - Nombre_Clase Nombre_Variable
-
- (estamos declarando una variable que es un
objeto, el nombre de la clase es el tipo de dato)
9Uso de los objetos
- Un mensaje pide a un objeto que ejecute alguno de
sus métodos. - Para enviar un mensaje a un objeto se usa el
siguiente formato - Nombre_Objeto . Nombre_Método (parámetros)
- (estamos llamando a la función miembro de la
clase a la que pertenece el objeto).
10Ejemplo. continuación
- void main( )
- Rectangulo A
- double area
- A. Inicializa(10, 5)
- area A.CalcArea( )
Crea el objeto A que es un Rectángulo usando el
constructor default
Envía mensajes al objeto A para que ejecute los
métodos Inicializa y CalcArea
11Uso de clases
- Es común colocar la declaración y definición de
una clase en un archivo y poner a ese archivo el
nombre de la clase con extensión .h. - Ejemplo Rect.h
- Para usar la clase en un programa cliente se
incluye la clase con un include. - Ejemplo include Rect.h
Ojo aquí lleva comillas
12Ejemplo completo sin constructor
Rect.h
Ejerc.cpp
class Rect public double CalcArea(
) void Inicializa(double la, double
an) private double largo, ancho
double RectCalcArea( ) return largo
ancho void RectInicializa( double la, double
an) largo la ancho an
include ltiostream.hgt include Rect.h void
main( ) Rect A double area
A. Inicializa(10, 5) area A.CalcArea(
) coutltltarea
13Ejemplo completo usando un constructor con
parámetros
Rect.h
Ejerc.cpp
class Rect public double CalcArea(
) Rect(double la, double an) private
double largo, ancho RectRect( double la,
double an) largo la ancho an double
RectCalcArea( ) return largo ancho
include ltiostream.hgt include "Rect.h" void
main( ) Rect A(10,5) double area
area A.CalcArea( ) coutltltarea
14Los Objetos en Java se manejan por referencia
a
- //JAVA
- class box
- public int value
-
- box a new box()
- box b
- a.value 7
- b a
- b.value12
b
a
7 ? 12
b
NOTA a y b son espacios que guardan referencia
que pueden cambiar, son VARIABLES
15Los Objetos en C se manejan por valor
- //C
- class box
- public
- int value
-
- box a
- box b
- a.value 7
- b a
- b.value 12
a
?
b
?
a
a
7
b
b
7 ? 12
NOTA a y b son espacios que guardan referencias
que no cambian son CONSTANTES