INGENIERIA DE SISTEMAS PROGRAMACION II U.A.T.F. Programación Orientada a Objetos ¿QUE SON LAS CLASES Y QUE SON LOS OBJETOS? Las clases son el núcleo de Java, definen la forma y naturaleza de un Objeto. 1. Concepto de Clase. Clase es una representación de un objeto en particular, las clases se utilizan para crear objetos de ese tipo de clase en particular. PARTES DE UNA CLASE Una clase está conformada básicamente por nombre, atributos (variables) y funciones (operaciones o métodos). - Empleado Nombre de la clase Código Nombre Sueldo Fecha_ingreso Atributos de la clase crearNuevo() generarCodigo() ……. Funciones de la clase Declaración de clases en java [public] class Nombre_de_Clase { // atributos // funciones } Nota- Las clases que no tienen la función principal main(), no se pueden ejecutar, sólo deben ser compiladas, y así generarán el archivo .class. Por ejemplo una clase Rectangulo que tiene los atributos de base y altura y la función obtenerArea: Rectangulo - int base int altura Nombre de la clase Atributos de la clase void setDatos(int b, int a) int getArea() . Funciones de la clase INGENIERIA DE SISTEMAS PROGRAMACION II U.A.T.F. La declaración de esta clase en java seria: class Rectangulo { int base; int altura; void setDatos(int b, int a) { base=b; altura=a; } int getArea() { return(base*altura); } } 2. Objetos Un objeto (en ingles instance) es un ejemplar concreto de una clase. Las clases son como tipos de variables, mientras que los objetos son como variables concretas de un tipo determinado. Los objetos se crean a partir de clases con la sentencia para el objeto) new (se reserva espacio de memoria Rectangulo objeto1=new Rectangulo(); CLASE OBJETO Por ejemplo a partir de la clase Rectangulo podemos crear más de un objeto de ese tipo de clase, como se muestra a continuación crearemos 2 objetos a los cuales les llamaremos objeto1 y objeto2 class prueba { public static void main(String args[]) { Rectangulo objeto1=new Rectangulo(); objeto1.setDatos(4,3); //enviamos base y altura a objeto1 System.out.println(objeto1.getArea()); //visualizamos el área del objeto1 Rectangulo objeto2=new Rectangulo(); objeto2.setDatos(9,2); //enviamos base y altura a objeto2 System.out.println(objeto2.getArea()); //visualizamos el área del objeto2 } } EJEMPLOS DE PROGRAMAS CON CLASES Y OBJETOS INGENIERIA DE SISTEMAS PROGRAMACION II U.A.T.F. 1. Crear una clase Mascota y una clase de prueba donde se cree un objeto de tipo Mascota. Mascota nombre especie edad propietario class Mascota { String nombre; String especie; int edad; String propietario; void setDatos(String n,String e,int ed,String p) { nombre=n; especie=e; edad=ed; propietario=p; } setDatos() } class prueba { public static void main(String[] args) { Mascota m=new Mascota(); m.registrar("firulais","perro",12,"Juan Perez"); System.out.print(m.nombre); System.out.print(m.especie); System.out.print(m.edad); System.out.print(m.propietario); } } 2. Realice la clase Alumno Alumno nombre nota setDatos() mostrar() Posteriormente realice las siguientes acciones: a) Crear un objeto al1 de tipo Alumno. b) Crear un objeto al2 de tipo Alumno. c) Visualice todos los datos de al1. d) Modifique el nombre de al1 e) Visualice el nombre de al1. class Alumno { String nombre; int nota; void setDatos(String n,int t) { nombre=n; nota=t; } void mostrar() { System.out.println("nombre "+nombre); System.out.println("Nota "+nota); } } INGENIERIA DE SISTEMAS PROGRAMACION II U.A.T.F. class prueba { public static void main(){ Alumno al1=new Alumno(); //a) Crear un objeto al1 de tipo Alumno. al1.setDatos("luis",40); Alumno al2=new Alumno(); //b)Crear un objeto al2 de tipo Alumno. al2.setDatos("marco",60); al1.mostrar(); //c)Visualice todos los datos de al1. al1.nombre="manuel"; //d)Modifique el nombre de al1 System.out.print(al1.nombre); //e)Visualice el nombre de al1. } } 3. Programa que permite insertar N datos en un vector y visualice los mismos en forma invertida Vector int A[] int cant void crear(int n) void insertar(int x) void mostrarInvertido() public class Vector { int A[]; //A es un vector de numeros enteros int cant=0; // cant es la cantidad de datos que hay en el vector void crear(int n){ //crear recibe un numero que sera el tamaño del vector A=new int[n]; //se crea el vector de tamaño n } void insertar(int x){ //recibe un numero que es insertado el vector A[cant]=x; cant++; } void mostrarInvertido(){ for(int i=cant-1;i>=0;i--) System.out.print(A[i]+" "); } } import java.util.*; public class prueba { public static void main(String[] args) { Scanner en=new Scanner(System.in); Vector v=new Vector(); int N=en.nextInt(); //se inserta el tamaño del vector por teclado v.crear(N); //se envia el tamaño al vector for(int i=0;i<N;i++) v.insertar(en.nextInt()); v.mostrarInvertido(); } } 4. Programa que permite insertar N nombres en un vector y posteriormente visualiza los datos y la cantidad de nombre que empiezan con la letra A. (Mediante la clase Lista) Lista String A[] int cant void crear(int x) void insertar(String x) void mostrar() int getIniciaA() INGENIERIA DE SISTEMAS PROGRAMACION II public class Lista { String A[]; int cant=0; void crear(int x){ A=new String[x]; } void insertar(String x){ A[cant]=x; cant++; } void mostrar(){ for(int i=0;i<cant;i++) System.out.print(A[i]+" "); } int getIniciaA(){ int c=0; for(int i=0;i<cant;i++) if(A[i].charAt(0)=='A') c++; return c; } } import java.util.*; public class prueba { public static void main(String[] args) { Scanner en=new Scanner(System.in); Lista l=new Lista(); int N=en.nextInt(); l.crear(N); for(int i=0;i<N;i++) l.insertar(en.next()); //inserta por teclado nombres l.mostrar(); System.out.print(l.getIniciaA()); } } U.A.T.F.