Вы находитесь на странице: 1из 42

PROGRAMACIN ORIENTADA A OBJETOS

Clase 2

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

El modelo Orientado a Objetos

Para entender el modelo vamos a revisar 4 conceptos bsicos a lo largo del curso:

Objetos Clases Mtodos Atributos

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

QU ES UN OBJETO?

Un objeto es un conjunto de variables (o datos) y mtodos (o funciones) relacionados entre s. Modelan entidades del mundo real.

Es la representacin en un programa de un concepto, y contiene toda la informacin necesaria para abstraerlo:


Datos que describen sus atributos Operaciones que pueden realizarse sobre los atributos

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

QU ES UN OBJETO?

Representacin visual de un objeto

Los atributos del objeto (estado) y lo que el objeto puede hacer (comportamiento) estn expresados por las atributos y los mtodos que componen el objeto respectivamente. En programacin orientada a objetos, un objeto particular se denomina una instancia.
Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Ejemplo de qu es un objeto

Qu tendra un elemento que modele un carro?

Tendra variables que indicaran el estado actual del carro:


La velocidad es 80 km/h 2 Km recorridos Marcha actual es la 3

Estas variables corresponden a las de un carro en particular

Se conocen como variables de instancia o variables miembro

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Ejemplo de qu es un objeto

El objeto carro podra tener mtodos:


Acelerar Frenar Cambiar de velocidad

Estos mtodos afectan a una instancia u objeto carro en particular

Se denominan mtodos de instancia o mtodos miembro

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Modelamiento de un carro como objeto


frenar acelerar
velocidad recorrido marcha

Atributos:

Velocidad Recorrido Marcha Acelerar Frenar Cambiar velocidad

cambiar Velocidad

Mtodos:

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

El modelo Orientado a Objetos

Esta representacin del objeto muestra las variables miembro en el ncleo o centro del objeto y los mtodos rodeando el ncleo y protegindolo de otros objetos del programa.

Encapsulacin: Accin de empaquetar o proteger las variables miembro con los mtodos miembro se denomina. Java permite establecer 4 niveles de proteccin de las variables y de las funciones miembro. Los niveles de proteccin determinan a que variables o mtodos se pueden acceder y a travs de quien.
Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

QU ES UNA CLASE?

En el mundo real existen varios objetos de un mismo tipo, o de una misma clase.

Mi bicicleta es una de las tantas bicicletas que existen en el mundo. Acorde a la terminologa de la programacin orientada a objetos, mi bicicleta es una instancia de la clase de objetos conocida como bicicletas.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

QU ES UNA CLASE?

Todas las bicicletas tienen algunos atributos y mtodos en comn:


Atributos: color, marcha actual, cadencia actual, dos ruedas Mtodos: cambiar de marcha, frenar Una bicicleta podr ser azul, y otra roja, pero ambas en comn tienen una variable llamada color.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

QU ES UNA CLASE?

Podemos definir una plantilla de variables y mtodos para todas las bicicletas del ejemplo. Las plantillas para crear objetos son denominadas clases.

Una clase es una plantilla que define las variables y los mtodos que son comunes para todos los objetos de un cierto tipo.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Ejemplos de objetos de la clase carro


frenar
velocidad Recorrido marcha

acelerar

Velocidad: 100 Km/h Recorrido: 5000 Km Marcha: 5

cambiar Velocidad

Velocidad: 90 Km/h Recorrido: 10000 Km Marcha: 4

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Tipos de datos primitivos

Los atributos de una clase estn representados por variables. Las variables se declaran mediante un tipo de dato. Es la especificacin de un dominio (rango de valores) y de un conjunto vlido de operaciones a los que normalmente los traductores asocian un esquema de representacin interna propio.
Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Tipos de datos primitivos

El lenguaje Java define 8 tipos de datos primitivos:

Datos de tipos numricos Nmeros enteros: byte, short, int, long

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Tipos de datos primitivos

Datos de tipos numricos

Nmero con punto flotante: float, double

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Tipos de datos primitivos

Datos de tipo caracter

Char

Datos de tipo lgico

boolean

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Operadores aritmticos

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Caracteres especiales (secuencias de escape)

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Operadores Lgicos

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Variables

Java es un lenguaje "fuertemente tipado o tipificado. Es necesario especificar el tipo de dato para cada una de las variables. El nombre de la variable debe de ser un identificador vlido, y se usa para referirse a los datos que contiene una variable. El tipo de una variable determina los valores que puede almacenar y las operaciones que se pueden hacer sobre ella. Para dar a una variable un tipo y un nombre, se escribe una declaracin de una variable, que tiene la siguiente forma:

TipoDato nombreVariable; Ej. String nombre; // variable de tipo String int edad; // variable de tipo int Prof: Ing. Karla Abad Punto p; // variable del tipo Punto Facultad de Sistemas y Telecomunicaciones

JAVA Identificadores de variables


Pueden empezar con una letra, un signo de dlar ($) o un subguin. No pueden empezar con un nmero. Despus del primer caracter, pueden contener cualquier combinacin de letras, smbolos especiales y nmeros. En la prctica no hay lmite para el nmero de caracteres que puede contener un identificador. No puede utilizarse un keyword de Java como identificador. Son case sensitive. Es decir: mes y MES son dos identificadores diferentes;
Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Identificadores de variables


int $c; int :b; Existen 4 identificadores int -d; correctos int _$; int e#; int ______2_w; int .f; int 7g; Int this_is_a_very_detailed_name_for_an_identifier;

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Keywords
Son palabras reservadas especiales que no pueden ser utilizadas como identificadores (nombres) para clases, mtodos o variables. En Java existen dos palabras que son reservadas pero que no son utlizadas: const y goto. El uso de null, true y false como identificadores est prohibido a pesar de no ser consideradas palabras reservadas sino valores literales.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Keywords

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Literales

Una literal es un valor constante formado por una secuencia de caracteres. Cualquier declaracin en Java que defina un valor constante -un valor que no pueda ser cambiado durante la ejecucin del programa- es una literal. Son ejemplos de literales los nmeros, los caracteres y las cadenas de caracteres.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Literales Integer
Hay 3 maneras de representarlos: decimal (base 10),octal (base 8) y hexadecimal (base 16).

Literal Decimal Comn y corriente, no necesita nada especial para representarlo en java. Literal Octal Va del 0 al 7. Se lo representa poniendo un cero en frente del numero: Eje: int siete = 07; int ocho = 010; int nueve = 011; Notar que solo pueden ser dgitos del 0 al 7, y se pueden poner hasta 21 dgitos sin contar el cero de en frente.
Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Literales Integer
Literal Hexadecimal Se lo representa poniendo el prefijo 0x (cero-x) o el sufijo L. Va del 0 a la f. Se acepta minsculas o maysculas. Se pueden poner hasta 16 dgitos sin incluir el prefijo 0x. Ej: int x=0x00001; int y=0x7ffff; int z=0xffffffff; System.out.println("x: "+x+" y: "+y+" z: "+z); long a=0xfffffffffL; System.out.println("a: "+a); Resp: x: 1 y: 524287 z: -1 Resp: a: 68719476735
Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Literales Punto-Flotante
Son definidos como un nmero, un smbolo de decimal y ms numero representando la fraccin.
Eje: double d = 1234.1587; Los valores de punto flotante son definidos como double ( 64 bits ) por defecto, as que si se quiere asignar a un tipo float ( 32 bits ), se debe poner el sufijo F o f al numero. Eje: float f = 2134.124f; Si no se coloca la f o F, dar un error de compilacin. Tambin se puede poner el sufijo D o d a los doble, pero no es necesario.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Literales Boolean
Un boolean puede ser definida solo como true o false.
OJO: No se pueden asignar nmeros en vez de valores boolean. Ni ponerlos en lugares en donde un boolean es requerido. Eje: boolean b1 = true; boolean b2 = 1; int x=1; if ( x ) { }

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Literales Caracteres
Es representado por un caracter entre comillas simples. Tambin se lo puede escribir en el valor Unicode del carcter.
Eje: char a = 'a'; char N = '\u004E'; Recordar que un entero es solo un nmero sin signo de 16 bits. Lo que significa que puede ser un numero de 0 a 65535. char d = 0x64; char A = 65; char f = (char)70000;

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Literales Caracteres
Valores de Literales String Se los representa en la forma ms sencilla con comillas dobles. Eje: String string = hola;

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

JAVA Arrays
Son objetos que sirven para almacenar mltiples variables del mismo tipo o que sean todas subclases del mismo tipo. Pueden almacenar primitivos o referencias a objetos.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Declaraciones de Arrays

Declaracin de arrays de primitivos: int[] key; // Corchetes antes del nombre (recomendado) int key []; // Corchetes despus del nombre (legal pero menos leble) Declaracin de arrays de referencias a objetos: Empleado[] empleados; // Recomendada Empleados empleados [];

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Declaraciones de Arrays Multidimensionales

Pueden declararse arrays multidimensionales (arrays de arrays), de la siguiente forma: String[] [] [] occupantName; String[] ManagerName []; // Legal, pero muy feo y no entendible. Es recomendable seguir los consejos dados anteriormente en cuanto a la declaracin de los arreglos para que puedan ser ledos y entendido mas fcilmente.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Declaraciones de Arrays

Es ilegal incluir el tamao del array en su declaracin.


La razn es que la JVM, no reserva espacio hasta que realmente se instancie el array de objetos.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Arreglos
int[5] scores; Con respecto a lo declarado, recuerden que esto nunca compilar, ya que en java hace la reservacin de memoria solo en el momento de la instanciacin.

Construyendo un arreglo
En el momento de la creacin es donde se especifica el tamao del arreglo para poder alojarlo en el heap.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Construyendo un Arreglo cont


int[] carros; //Declara un arreglos de enteros Carros = new int[3]; //Construye un arreglo de enteros

Lo que sucede en las lneas declaradas es que se crea un arreglo de enteros, luego se lo crea en memoria y despus interiormente en compilador asigna ceros a todos los valores del arreglo. Tambin se lo puede hacer en una sola lnea: int[] carros = new int[3]; // Para primitivos
Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Construyendo Arreglos Multimensionales


Un arreglo multidimensional es un simple arreglo de arreglos. As, un arreglo bidimensional de enteros es un objeto de tipo arreglo de enteros done cada uno de sus elementos es otro arreglo. Ejemplo : int [][] arreglo = new int[3][]; arreglo[0] = new int[3]; arreglo[0][0] = 0; arreglo[0][1] = 1; arreglo[0][2] = 2; arreglo[1] = new int[2]; arreglo[1][0] = 3; arreglo[1][1] = 4;

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Construyendo Arreglos Multimensionales

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Declarando, Construyendo e Inicializando en una lnea (Atajo 1)


int[] casas = {3,6,9};
Esta lnea: Declara una referencia de arreglo de enteros llamado casas. Crea un arreglo de longitud tres. Lo llena con los valores: 3,6 y 9. Asigna el arreglo creado a la referencia de arreglo llamada casas. Aqu salta una pregunta, porque no solo se usa esta manera para crear los arreglos y la respuesta es que puede que al momento de crear el arreglo no se sepa el tamao final. Para un arreglo de objetos se lo hace de la misma manera.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Declarando, Construyendo e Inicializando en una lnea


Para arreglos multidimensionales int[][] casas = { {1,2} , {3,4,5} , {6,7,8} }; Aqu se esta creando un arreglo de arreglos, cada uno de los elementos creados es un arreglo, en donde el tamao de estos en el nmero de elementos que tienen. Se ha creado 4 objetos aqui, el primer objeto creado es el arreglo de arreglos, luego el primer elemento dentro del arreglo tiene un tamao de 2, el segundo 3 y el tercero 4, y cada uno de estos son objetos.

Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Inicializando arreglos
A two-dimensional array (an array of arrays) can be initialized as follows: int[][] scores = new int[3][]; // Declara y crea un arreglo que contiene 3 referencias a arreglos de enteros scores[0] = new int[4]; //El primer elemento en un arreglo de enteros de tamao 4 scores[1] = new int[6]; //El segundo en un arreglo de enteros de tamao 6 scores[2] = new int[1]; //El tercero es un arreglo de enteros de tamao 1

Inicializando arreglos en un lazo


Los arreglos tienen un nico atributo publico: length, que da el nmero de elementos del arreglo. Perro[] misPerros = new Perro[5]; for (int i=0; i<misPerros.length ;i++) misPerros[i] = new Perro();

Perro[] misPerros = new Perro[5]; for(Perro p : misPerros) p = new Perro();


Prof: Ing. Karla Abad Facultad de Sistemas y Telecomunicaciones

Вам также может понравиться