Está en la página 1de 4

Plataforma y lenguaje Clasificaciones Los lenguajes de programacin se dividen en: 1. lenguaje mquina a. La computadora la entiende directamente b.

Es el lenguaje natural de una computadora c. Est definida por el diseo de hardware de la computadora d. Consiste de cadenas de nmeros que instruyen a la computadora para realizar sus operaciones ms elementales e. Son dependientes de la maquina f. difcil de entender para los humanos g. Lento y tedioso para los programadores 2. lenguaje ensamblador a. Utiliza abreviaturas en ingles para representar las operaciones bsicas de la computadora b. Tiene un traductor que convierte el lenguaje ensamblador a lenguaje maquina c. Es ms claro para los humanos d. An requiere muchas instrucciones para llevar a cabo incluso las tareas ms simples. LOAD SALDO, DAD SUELDO EXTRA, STORE SUELDO BRUTO 3. LENGUAJE DE ALTO NIVEL a. Permiten a los programadores escribir instrucciones que son muy similares al ingls comn. b. Pueden escribirse instrucciones individuales para realizar tareas importantes. c. Son ms recomendables desde el punto de vista del programador. COBOL. Aplicacin de negocios FORTRAN. Clculos matemticos BASIC. Uso y aprendizaje sencillo PASCAL. Lenguaje de propsito general y de mltiples aplicaciones. VISUAL BASIC. Facilitar el desarrollo rpido de aplicaciones. DELPHI. Similar a visual Basic y pascal. C, C++, C#. Lenguajes de propsito general, facilitan el uso y portabilidad de los programas. JAVA. Desarrollo de aplicaciones de internet. C, C++ y JAVA son los lenguajes de alto nivel ms poderosos y ms ampliamente utilizados. CARACTERSTICAS DE LOS LENGUAJES DE PROGRAMACIN ORIENTADOS A OBJETOS. La tecnologa de objetos es un esquema de compactacin que permite crear unidades tiles de SW. Los programadores viven en un mundo de objetos y pueden programar de una manera orientada a objetos. Este es un proceso ms natural de programacin y ha dado como resultado un mayor grado de productividad. Mediante la tecnologa de objetos las entradas de SW (llamadas clases) si se disean apropiadamente, tienden a ser mucho ms reutilizables en proyectos futuros. La programacin orientada a objetos produce SW que es ms comprensible, mejor organizado y fcil de mantener, modificar y corregir. Caractersticas de un lenguaje de POO 1. Todo es un objeto 2. Un programa es un cumulo de objetos que se dicen entre si lo que tienen que hacer mediante el envo de mensajes. 3. Cada objeto tiene su propia memoria constituida por otros objetos 4. Todo objeto es de algn tipo 5. Todos los objetos de determinado tipo pueden recibir los mismos mensajes.

Caractersticas de la plataforma Historia de java Surgi en la dcada de los 90 (1991) James Gosling de sun Microsystem Oak y java todas la versiones Netscape acord proveer soporte para java en su navegador web

Primer navegador: mosaic, despus Firefox Es portable Applets para hacer las pginas ms dinmicas y seguras Sun mycrosystem fue adquirida por Oracle en 2009 Java en honor a un tipo de caf.

Caractersticas de java Lenguaje de propsito general Se encuentra en numerosas aplicaciones como: a. Servidores web b. BDs relacionales. c. Sistemas de informacin Geogrfica d. Telfonos celulares e. Sistemas de teledeteccin f. PDA g. Sistemas medioambientales

Constituye una plataforma completa para el desarrollo de SW Posee una biblioteca extensa. Los programas de java son similares a los programas de C++. Java se dise con internet en mente. Portable Seguro

Clases, objetos y lecturas de datos desde el teclado Criterios para la definicin de clases Es importante realizar un diseo adecuado de clases para realizar modificaciones y extensiones eficientemente. Dos trminos son centrales cuando hablamos de calidad en el diseo de clases: Acoplamiento: describe la interconectividad entre las clases. Debemos lograr acoplamiento en un sistema en el que cada clase es altamente independiente y se comunica con otras clases mediante una interfaz bien definida. Cohesin: describe cuando se ajusta una unidad de cdigo a una tarea lgica o entrada. En un sistema altamente cohesivo cada unidad de cdigo (mtodo, clase o modulo) es responsable de una tarea bien definida. Duplicacin de cdigo: tener el mismo segmento de cdigo en una aplicacin ms de una vez, es una seal de mal diseo y debe ser evitado. Encapsulamiento: el encapsulamiento apropiado en las clases reduce el acoplamiento y por lo tanto lleva a un mejor diseo. Mapa: coleccin que almacena pares llave/valor como entradas. Los valores se pueden buscar suministrando la llave. Hash Map: implementacin particular de un mapa, los mtodos ms importantes de la clase hash map son put y get. El mtodo put inserta una entrada en el mapa. El mtodo get recupera el valor correspondiente a una llave determinada. Para usar un hash map es necesario el paquete java.util.HashMap Otro mtodo importante de un Hash map es KeySet(), el cual nos regresa un conjunto formado por todos las llaves del hash map. Para utilizar un conjunto es necesario importar la clase set del paquete java.util. Diseo dirigido por responsabilidades Es el proceso de disear clases asignando responsabilidades bien definidas a cada uno. Este proceso puede usarse para determinar las clases que deben implementarse, una parte de cierta funcin de una aplicacin. Expresa la idea de que cada clase ser responsable de manejar sus propios datos. Un buen diseo dirigido por responsabilidades influye en el grado de acoplamiento y por consiguiente influye en la facilidad con que una aplicacin puede ser modificada o extendida. Nuestro objeto por reducir el acoplamiento demanda que, tanto como sea posible, los cambios en una clase no requieran cambios en otra clase.

Localizacin de los cambios. Uno d los principales objetivos de un diseo de clases de buena calidad es la localizacin de los cambios: las modificaciones en una clase deben tener efectos mnimos sobre las otras clases

import java.util.HashMap; System.out.println(m.size()); import java.util.HashSet; } import java.util.Map; Alumnos(String name, int age){ public class Alumnos { this.name = name; private int age; this.age = age; private String name; } public static void main(String[] args) { public String toString(){return name;} Alumnos person1 = new Alumnos("Juan",18); Alumnos person2 = new // Sobreescribimos el metodo equals y el Alumnos("Miguel",25); metodo hashcode Alumnos person3 = new Alumnos("Luis",18); @Override Alumnos person4 = new Alumnos("Luis",18); public boolean equals(Object o) { HashSet<Alumnos> personas = new if (o instanceof Alumnos) { HashSet<Alumnos>(); Alumnos p = (Alumnos)o; personas.add(person1); return this.name.equals(p.name); personas.add(person2); } else { personas.add(person3); return false; personas.add(person4); } System.out.println(personas.size()); } Map<Alumnos,String> m = new // Recordar que el metodo hashcode retorna HashMap<Alumnos,String>(); un int m.put(person1, "valor1"); @Override m.put(person2, "valor2"); public int hashCode() { m.put(person3, "valor1"); return age * this.name.length(); m.put(person4, "mi valor"); } System.out.println(m.keySet()); } Ahora vamos a cambiar el comportamiento de la clase Alumnos para que al insertarlo en un HashMap o en un HashSet se valide si el elemento insertado ya existe. Sobrescribimos el mtodo .equals() de tal manera que dos objetos Alumno sern iguales si coinciden sus nombres.De igual manera sobrescribimos el mtodo .hashCode(). Para generar el hascode utilizamos la variable edad y la longitud del String, consiguiendo as un entero. Ahora, una vez sobrescritos los mtodos .hashCode() y .equals(), si verificamos el tamao del HashSet alumnos veremos que nos devuelve "3" ya que, si hay un elemento igual, el metodo .add() devolvera false. De igual manera el mtodo .size() sobre el HashMap.keySet() los nombres de 3 alumnos ya que el mtodo .put() habr devuelto false al insertar objetos iguales. de cadena a numeros String num = "100"; int numero = Integer.parseInt(num); String nume = "100.36"; double n = Double.parseDouble(nume); de nmeros a cadena

double dou = 25.23; int numer = 300; String cad1 = String.valueOf(numer); String cad2 = String.valueOf(dou); import java.io.*; class Hola2 { public static void main( String args[] ) throws IOException { String nombre; System.out.print( "Introduzca su nombre: " ); BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in)); nombre = entrada.readLine(); System.out.println( "Hola, " + nombre ); } } } System.out.println( "Hola, " + nombre ); import java.util.Scanner; class Scanner1 { public static void main( String args[] ) throws IOException { String nombre; System.out.print( "Introduzca su nombre (una palabra): " ); Scanner entrada=new Scanner(System.in); nombre = entrada.next();

} import java.io.*; No slo podemos leer cadenas de texto. Si lo siguiente que queremos leer es un nmero, podemos usar ".nextInt", ".nextFloat", ".nextDouble" En nuestro ejemplo vamos a insertar 10 elementos, que sern nmeros, y los recuperaremos en su orden inverso. public class Pila { public static void main(String[] args) { Stack<String> pila = new Stack<String>(); for (int x=1;x<=10;x++) pila.push(Integer.toString(x)); while (!pila.empty()) System.out.println(pila.pop()); } }

También podría gustarte