Sie sind auf Seite 1von 23

ICIN 051

Programación de Computadores
Semestre 01/2006
Oscar Mapocho Salazar Cerna
mapocho@gmail.com

Clase 10: Clases y Objetos

Instituto de Computación - Universidad Austral de Chile - Campus Puerto Montt


¿Qué es una clase?

 Conjunto de individuos que tienen una


propiedad común que les diferencia de
todos los demás
 Los “individuos” pertenecen o no
pertenecen a la clase
 Es una representación abstracta de un
objeto
 ¿Qué?

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Más “sencillo”

 Una clase es un contenedor


 De uno o más datos (variables o
propiedades miembro)
 Junto a las operaciones de
manipulación de dichos datos
(funciones/métodos)

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
¿Cómo se define una clase?

class Nombre {
// Variables miembro (habitualmente privadas)
miembro_1; //lista de miembros
miembro_2;
miembro_3;

// Funciones o métodos (habitualmente públicas)


funcion_miembro_1( );
funcion_miembro_2 ( );
}

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
¿Y de qué se componen?

 Atributos o variables de instancia


 Son características de los objetos
 Se debe especificar si nombre y su tipo
 Pueden ser:
 Públicas: Todos pueden acceder a ellas
 Privadas: Sólo dentro de la clase se puede
acceder a ella

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
¿Y de qué se componen?

 Métodos en las clases (funciones o


procedimientos)
 Implementan la funcionalidad asociada al objeto
 Son el equivalente a las funciones en los lenguajes
estructurados
 Se diferencian de ellos en que es posible acceder a
las variables de la clase de forma implícita
 Cuando se desea realizar una acción sobre un
objeto, se dice que se le manda un mensaje
invocando a un método que realizará la
acción
 Habitualmente, los métodos suelen ser
verbos
Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejemplos

class Casa {
decimal Altura;
decimal Ancho;
decimal Profundidad;
string Color;
void Entrar();
void Salir();
}
Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejemplos

class Punto {
float x, y;
void Set();
float GetX();
float GetY();
float GetRadio();
}

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejemplos

class Cuadrado {
Punto p1, p2;
void Set();
float GetP1();
float GetP2();
float GetArea();
}

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejemplos

class Circulo {
Punto p;
float radio;
void Set();
float GetPunto();
float GetArea();
}

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
¿Qué son los objetos?

 Instancias de clases
 ¿Qué?
 Son variables que tienen como tipo
alguna clase
 Se declaran igual que las variables:
 nombre_clase nombre_objeto;
 Se instancian:
 nombre_objeto= new nombre_clase();

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejemplos

using System;
using System.Collections.Generic;
using clases_utiles;

namespace ejemplos_clases
{
class MainClass
{
public static void Main(string[] args)
{
Punto mi_punto; // Declaro mi objeto
mi_punto= new Punto( 3, 4); // Lo instancio
}
}
}

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Métodos

 Trozos de código que se pueden llamar


muchas veces
 Devuelven algo (de algún tipo)
 Reciben parámetros
 Dividir para reinar
 Sintaxis:
 tipo_datos nombre_metodo (parametros …)

 Concepto de firma

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Métodos

 Devuelven algo
 Nada: void
 Un tipo de datos conocido
 Una clase
 Hay una clase que debe existir siempre
para programas:
 MainClass
 Y debe tener siempre el método:
 public static void Main(string[] args)

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejemplos
public class Punto {
public double x, y;

public void Set(double variable_x, double variable_y)


{
this.x= variable_x;
this.y= variable_y;
}

public double Pitagoras() {


return( Math.Sqrt(Math.Pow(this.x,2) + Math.Pow(this.y,2));
}
}

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejercicios

 Construir una clase que provea un


mecanismo para manejar un
rectángulo, además de las
herramientas para poder calcular:
 El perímetro
 El área
 Ver si un punto está en su interior

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Privacidad en las Clases

 Una variable o método, que pertenece


a una clase, puede ser:
 Privado (private): Sólo pueden acceder a él
los métodos de la misma clase
 Público (public): Pueden acceder a él todos
los métodos externos a la clase original
 Protegido (protected): Pueden acceder a él
los métodos de “clases hijas”

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejercicio
Números Complejos
 Proveer una clase para manejar números
complejos definidos como a+bi
 Métodos:
 Set
 Imprimir
 Sumar
 Se obtiene sumando respectivamente las partes reales
e imaginarias de los complejos dados.
 Multiplicar
 El resultado es otro complejo que se obtiene
multiplicando cada una de las partes de uno de los
complejos por las otras partes del otro complejo
recordando que i2 = -1
Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejercicios
Fecha Chilena
 Proveer una clase que permita
implementar una fecha en formato
chileno: dd/mm/aaaa
 Métodos:
 Set
 Imprimir( formato)
 SumarDias( dias)
 EsMenor( fecha)
 EsMenorIgual (fecha)
 DiaDeLaSemana()
Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejercicios
Hora
 Proveer una clase que permita
implementar una hora: hh:mm:ss
 Métodos:
 Set
 Imprimir( formato)
 Decimal()
 SumarHoras( horas)
 EsMenor( hora)
 EsMenorIgual ( hora)
Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejercicios
Graficar Polinomios
 Proveer una clase que permita graficar
polinomios
 Métodos:
 SetGrado(n)
 SetCoeficiente(i)
 GetF(x)
 GraficarF(x1, x2)
 Imprimir()

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejercicios
El Gato
 Proveer una clase que permita jugar
Gato entre 2 jugadores
 Métodos:
 Vaciar
 JugarEn
 AlguienGano

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt
Ejercicios
El Banco
 Proveer una clase que permita manejar
una cuenta corriente (simple) de un
banco.
 Usar otra clase: Movimiento
 Métodos:
 Set
 Abonar
 Retirar

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

Das könnte Ihnen auch gefallen