SlideShare una empresa de Scribd logo
Clases y Objetos
Ramiro Estigarribia Canese
Un mundo de objetos
Existen en la naturaleza, en los negocios y en los
productos que usamos.
No es sorprendente que se proponga una visión
orientada a objetos para la creación de software.
Es una abstracción que modela
el mundo de forma tal que nos
ayuda a entenderlo mejor.
¿Por qué enfocar a objetos?
Las tecnologías de objetos están sustituyendo a los
enfoques clásicos de desarrollo de software.
¿Por qué? La respuesta principal es la reutilización.
Reutilización x Naturaleza
Las tecnologías de objetos llevan a reutilizar.
La reutilización de componentes de software lleva a un
desarrollo de software más rápido y a programas de
mejor calidad.
El software orientado a objetos es más fácil de
mantener debido a que su estructura
es por naturaleza poco acoplada.
Clases y objetos
Comenzaremos con una analogía simple, para
ayudarle a comprender:
➔ Suponga que desea conducir un automóvil y, para
hacer que aumente su velocidad, debe presionar el
pedal del acelerador.
¿Qué debe ocurrir antes?
Antes de poder conducir un automóvil: alguien tiene
que diseñarlo.
➔ Así como se pueden construir muchos autos a
partir del mismo dibujo de ingeniería, se pueden
construir muchos objetos a partir de la misma
clase.
Clases, objetos, métodos y
variables de instancia
➔ Un automóvil empieza en forma de dibujos de
ingeniería, similares a los planos que se utilizan
para diseñar una casa.
➔ El volante “oculta” los mecanismos que hacen que
el automóvil gire.
➔ Permite que personas sin conocimiento acerca de
cómo funcionan los motores puedan conducir.
Construir un Vehículo.
➔ Desafortunadamente, no puede conducir un dibujo
de un auto.
➔ Se debe construir a partir de los dibujos.
➔ Un automóvil tendrá un pedal acelerador, pero aún
así no es suficiente; el automóvil no acelerará por
su propia cuenta, así que el conductor debe oprimir
el pedal del acelerador.
➔ Para realizar una tarea en una aplicación se
requiere un método.
Atributos
Es una especificación que define una propiedad de un
objeto o clase.
➔ Un auto tiene muchos atributos como su color, el
número de puertas, la cantidad de gasolina en su
tanque y su velocidad actual.
➔ Cuando usted conduce un automóvil, estos
atributos siempre están asociados con él.
➔ Por ejemplo, cada conductor sabe cuánta gasolina
tiene en su propio tanque, pero no cuánta hay en
los tanques de otros automóviles.
¿Qué son los Métodos?
➔ Los métodos son las tareas que puede realizar una
clase.
➔ En Java, empezamos por crear una unidad de
aplicación llamada clase para alojar a un método.
➔ En una clase se proporcionan uno o más métodos.
➔ Por ejemplo, una clase que representa a una
cuenta bancaria podría contener un método para
depositar dinero en una cuenta, otro para retirar
dinero.
Llamar a un Método
➔ Cuando usted conduce un automóvil, si oprime el
pedal del acelerador se envía un mensaje al
automóvil para que realice una tarea.
➔ De manera similar, se envían mensajes a un objeto.
➔ cada mensaje se conoce como la llamada a un
método, e indica a un método del objeto que realice
su tarea.
Ejemplo:
Declaración de una clase
// LibroNotas.java
// Declaración de una clase con un método.
public class LibroNotas
{
// muestra un mensaje de bienvenida
public void mostrarMensaje()
{
System.out.println( "Bienvenido al Libro de Notas!" );
} // fin del método mostrarMensaje
} // fin de la clase LibroNotas
Ejemplo:
Declaración de una clase
➔ Como aprendimos en el capítulo 2, la clase main
empieza la ejecución de todas las aplicaciones.
➔ La clase LibroNotas no es una aplicación, ya que
no contiene a main.
➔ Por lo tanto, si trata de ejecutar, recibirá un
mensaje de error:
java.lang.NoSuchMethodError: main
Para corregir este problema, debemos declarar una
clase que contenga un método main.
Objeto de la Clase:
LibroNotas
// TestLibroNotas.java
public class TestLibroNotas
{
//el método main empieza la ejecución del programa
public static void main( String args[] )
{
// crea un objeto Notas
LibroNotas miLibroNotas = new LibroNotas();
miLibroNotas.mostrarMensaje();
} // fin de main
} // fin de la clase PruebaLibroNotas
Ejemplo:
Depositar dinero en cuenta.
➔ El siguiente ejemplo, permite actualizar el saldo de
un cliente.
➔ Se utiliza una clase Cuenta.java, y Ejecutar.java, en
donde se encuentra el método Main.
package cuenta;
public class Cuenta
{ private double saldo; //almacena el saldo
public Cuenta( double saldoInicial ) //constructor
{
if ( saldoInicial > 0.0 )
saldo = saldoInicial;
}
public void abonar( double monto )
{ saldo = saldo + monto; // suma el monto al saldo
} // devuelve el saldo de la cuenta
public double obtenerSaldo()
{ return saldo; // proporciona el valor de saldo
} // fin del método obtenerSaldo
} // fin de la clase Cuenta
package cuenta;
import java.util.Scanner;
public class Ejecutar {
public static void main( String args[] )
{
Cuenta cuenta1 = new Cuenta( 50.00 ); // crea objeto Cuenta
Cuenta cuenta2 = new Cuenta( 10.00 ); // crea objeto Cuenta
// muestra el saldo inicial
System.out.printf("Saldo de cuenta1: $%.2fn",cuenta1.obtenerSaldo());
System.out.printf("Saldo de cuenta2: $%.2fn",cuenta2.obtenerSaldo());
Scanner entrada = new Scanner( System.in ); //Entrada de Datos
double montoDeposito; // deposita el monto
System.out.print( "Escriba el monto a depositar para cuenta1: " );
montoDeposito = entrada.nextDouble(); // obtiene entrada del usuario
System.out.printf( "nSumando %.2f al saldo de cuenta1nn",
montoDeposito );
cuenta1.abonar( montoDeposito ); // suma al saldo de cuenta1
// muestra los saldos
System.out.printf( "Saldo de cuenta1: $%.2fn", cuenta1.
obtenerSaldo());
Cuadro de Diálogo Visual
➔ Los programas que hemos presentado hasta ahora
muestran su salida en la ventana de comandos.
➔ Muchas aplicaciones utilizan ventanas, o cuadros
de diálogo para mostrar la salida.
Dialogo1.java
package dialogo1;
import javax.swing.JOptionPane;
public class Dialogo1
{
public static void main( String args[] )
{
JOptionPane.showMessageDialog( null, "Bienvenido" );
} // fin de main
} // fin de la clase Dialogo1
Dialogo2.java
package dialogo2;
import javax.swing.JOptionPane;
public class Dialogo2
{
public static void main( String args[] )
{
// pide al usuario que escriba su nombre
String nombre =
JOptionPane.showInputDialog( "Cual es su nombre?" );
String mensaje =
String.format( "Bienvenido, %s, al curso!", nombre );
JOptionPane.showMessageDialog( null, mensaje );
} // fin de main
} // fin de la clase DialogoNombre
Concatenar Palabras.
package concatenar;
import javax.swing.JOptionPane;
public class Concatenar {
public static void main(String[] args) {
String var1= new String("Hola");
String var2= new String("mundo");
String frase= var1 + " " + var2;
JOptionPane.showMessageDialog( null, frase);
}}

Más contenido relacionado

Similar a 3.introducción a las clases y los objetos en java

Computación 3
Computación 3Computación 3
Computación 3
Maestros en Linea
 
Computación 3 sb04003 2013
Computación 3 sb04003 2013Computación 3 sb04003 2013
Computación 3 sb04003 2013Maestros Online
 
Computación 3 sb04003 2013
Computación 3 sb04003 2013Computación 3 sb04003 2013
Computación 3 sb04003 2013
Maestros en Linea
 
Ejemplos de pseudocódigo
Ejemplos de pseudocódigoEjemplos de pseudocódigo
Ejemplos de pseudocódigo
Liliana Nieto
 
Computación 2 java
Computación 2 javaComputación 2 java
Computación 2 java
Maestros en Linea
 
programacion
programacionprogramacion
programacion
Diego Alvarez A
 
JSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - TallerJSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - Taller
Alexis Lopez
 
Computación 3
Computación 3Computación 3
Computación 3
Maestros Online
 
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLiteParte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Juan Manuel
 
Tutorial net beans
Tutorial net beansTutorial net beans
Tutorial net beans
Yarker Castillo del Rosario
 
Computación 2 java
Computación 2 javaComputación 2 java
Computación 2 java
Maestros Online
 
Ejemplo 1 -_calculo_simple (1)
Ejemplo 1 -_calculo_simple (1)Ejemplo 1 -_calculo_simple (1)
Ejemplo 1 -_calculo_simple (1)
monikitatesorito
 
Java class library
Java class libraryJava class library
Java class library
LCA
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la pooXavii Torres
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
Eduardo Méndez
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
blasty2
 

Similar a 3.introducción a las clases y los objetos en java (20)

Computación 3
Computación 3Computación 3
Computación 3
 
Computación 3 sb04003 2013
Computación 3 sb04003 2013Computación 3 sb04003 2013
Computación 3 sb04003 2013
 
6.Métodos en Java
6.Métodos en Java6.Métodos en Java
6.Métodos en Java
 
Computación 3 sb04003 2013
Computación 3 sb04003 2013Computación 3 sb04003 2013
Computación 3 sb04003 2013
 
Ejemplos de pseudocódigo
Ejemplos de pseudocódigoEjemplos de pseudocódigo
Ejemplos de pseudocódigo
 
Clase numero 6
Clase numero 6Clase numero 6
Clase numero 6
 
Computación 2 java
Computación 2 javaComputación 2 java
Computación 2 java
 
programacion
programacionprogramacion
programacion
 
Asp
AspAsp
Asp
 
JSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - TallerJSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - Taller
 
Computación 3
Computación 3Computación 3
Computación 3
 
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLiteParte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
 
Tutorial net beans
Tutorial net beansTutorial net beans
Tutorial net beans
 
Computación 2 java
Computación 2 javaComputación 2 java
Computación 2 java
 
Ejemplo 1 -_calculo_simple (1)
Ejemplo 1 -_calculo_simple (1)Ejemplo 1 -_calculo_simple (1)
Ejemplo 1 -_calculo_simple (1)
 
Java class library
Java class libraryJava class library
Java class library
 
Programacion
ProgramacionProgramacion
Programacion
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la poo
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 

Más de Ramiro Estigarribia Canese

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
Ramiro Estigarribia Canese
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
Ramiro Estigarribia Canese
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
Ramiro Estigarribia Canese
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
Ramiro Estigarribia Canese
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
Ramiro Estigarribia Canese
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
Ramiro Estigarribia Canese
 
Servicios web
Servicios webServicios web
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
Ramiro Estigarribia Canese
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
Ramiro Estigarribia Canese
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
Ramiro Estigarribia Canese
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
Ramiro Estigarribia Canese
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
Ramiro Estigarribia Canese
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
Ramiro Estigarribia Canese
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
Ramiro Estigarribia Canese
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
Ramiro Estigarribia Canese
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
Ramiro Estigarribia Canese
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
Ramiro Estigarribia Canese
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
Ramiro Estigarribia Canese
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
Ramiro Estigarribia Canese
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
Ramiro Estigarribia Canese
 

Más de Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 

Último

DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 

Último (20)

DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 

3.introducción a las clases y los objetos en java

  • 1. Clases y Objetos Ramiro Estigarribia Canese
  • 2. Un mundo de objetos Existen en la naturaleza, en los negocios y en los productos que usamos. No es sorprendente que se proponga una visión orientada a objetos para la creación de software. Es una abstracción que modela el mundo de forma tal que nos ayuda a entenderlo mejor.
  • 3. ¿Por qué enfocar a objetos? Las tecnologías de objetos están sustituyendo a los enfoques clásicos de desarrollo de software. ¿Por qué? La respuesta principal es la reutilización.
  • 4. Reutilización x Naturaleza Las tecnologías de objetos llevan a reutilizar. La reutilización de componentes de software lleva a un desarrollo de software más rápido y a programas de mejor calidad. El software orientado a objetos es más fácil de mantener debido a que su estructura es por naturaleza poco acoplada.
  • 5. Clases y objetos Comenzaremos con una analogía simple, para ayudarle a comprender: ➔ Suponga que desea conducir un automóvil y, para hacer que aumente su velocidad, debe presionar el pedal del acelerador. ¿Qué debe ocurrir antes? Antes de poder conducir un automóvil: alguien tiene que diseñarlo. ➔ Así como se pueden construir muchos autos a partir del mismo dibujo de ingeniería, se pueden construir muchos objetos a partir de la misma clase.
  • 6. Clases, objetos, métodos y variables de instancia ➔ Un automóvil empieza en forma de dibujos de ingeniería, similares a los planos que se utilizan para diseñar una casa. ➔ El volante “oculta” los mecanismos que hacen que el automóvil gire. ➔ Permite que personas sin conocimiento acerca de cómo funcionan los motores puedan conducir.
  • 7. Construir un Vehículo. ➔ Desafortunadamente, no puede conducir un dibujo de un auto. ➔ Se debe construir a partir de los dibujos. ➔ Un automóvil tendrá un pedal acelerador, pero aún así no es suficiente; el automóvil no acelerará por su propia cuenta, así que el conductor debe oprimir el pedal del acelerador. ➔ Para realizar una tarea en una aplicación se requiere un método.
  • 8. Atributos Es una especificación que define una propiedad de un objeto o clase. ➔ Un auto tiene muchos atributos como su color, el número de puertas, la cantidad de gasolina en su tanque y su velocidad actual. ➔ Cuando usted conduce un automóvil, estos atributos siempre están asociados con él. ➔ Por ejemplo, cada conductor sabe cuánta gasolina tiene en su propio tanque, pero no cuánta hay en los tanques de otros automóviles.
  • 9. ¿Qué son los Métodos? ➔ Los métodos son las tareas que puede realizar una clase. ➔ En Java, empezamos por crear una unidad de aplicación llamada clase para alojar a un método. ➔ En una clase se proporcionan uno o más métodos. ➔ Por ejemplo, una clase que representa a una cuenta bancaria podría contener un método para depositar dinero en una cuenta, otro para retirar dinero.
  • 10. Llamar a un Método ➔ Cuando usted conduce un automóvil, si oprime el pedal del acelerador se envía un mensaje al automóvil para que realice una tarea. ➔ De manera similar, se envían mensajes a un objeto. ➔ cada mensaje se conoce como la llamada a un método, e indica a un método del objeto que realice su tarea.
  • 11. Ejemplo: Declaración de una clase // LibroNotas.java // Declaración de una clase con un método. public class LibroNotas { // muestra un mensaje de bienvenida public void mostrarMensaje() { System.out.println( "Bienvenido al Libro de Notas!" ); } // fin del método mostrarMensaje } // fin de la clase LibroNotas
  • 12. Ejemplo: Declaración de una clase ➔ Como aprendimos en el capítulo 2, la clase main empieza la ejecución de todas las aplicaciones. ➔ La clase LibroNotas no es una aplicación, ya que no contiene a main. ➔ Por lo tanto, si trata de ejecutar, recibirá un mensaje de error: java.lang.NoSuchMethodError: main Para corregir este problema, debemos declarar una clase que contenga un método main.
  • 13. Objeto de la Clase: LibroNotas // TestLibroNotas.java public class TestLibroNotas { //el método main empieza la ejecución del programa public static void main( String args[] ) { // crea un objeto Notas LibroNotas miLibroNotas = new LibroNotas(); miLibroNotas.mostrarMensaje(); } // fin de main } // fin de la clase PruebaLibroNotas
  • 14. Ejemplo: Depositar dinero en cuenta. ➔ El siguiente ejemplo, permite actualizar el saldo de un cliente. ➔ Se utiliza una clase Cuenta.java, y Ejecutar.java, en donde se encuentra el método Main.
  • 15. package cuenta; public class Cuenta { private double saldo; //almacena el saldo public Cuenta( double saldoInicial ) //constructor { if ( saldoInicial > 0.0 ) saldo = saldoInicial; } public void abonar( double monto ) { saldo = saldo + monto; // suma el monto al saldo } // devuelve el saldo de la cuenta public double obtenerSaldo() { return saldo; // proporciona el valor de saldo } // fin del método obtenerSaldo } // fin de la clase Cuenta
  • 16. package cuenta; import java.util.Scanner; public class Ejecutar { public static void main( String args[] ) { Cuenta cuenta1 = new Cuenta( 50.00 ); // crea objeto Cuenta Cuenta cuenta2 = new Cuenta( 10.00 ); // crea objeto Cuenta // muestra el saldo inicial System.out.printf("Saldo de cuenta1: $%.2fn",cuenta1.obtenerSaldo()); System.out.printf("Saldo de cuenta2: $%.2fn",cuenta2.obtenerSaldo()); Scanner entrada = new Scanner( System.in ); //Entrada de Datos double montoDeposito; // deposita el monto System.out.print( "Escriba el monto a depositar para cuenta1: " ); montoDeposito = entrada.nextDouble(); // obtiene entrada del usuario System.out.printf( "nSumando %.2f al saldo de cuenta1nn", montoDeposito ); cuenta1.abonar( montoDeposito ); // suma al saldo de cuenta1 // muestra los saldos System.out.printf( "Saldo de cuenta1: $%.2fn", cuenta1. obtenerSaldo());
  • 17. Cuadro de Diálogo Visual ➔ Los programas que hemos presentado hasta ahora muestran su salida en la ventana de comandos. ➔ Muchas aplicaciones utilizan ventanas, o cuadros de diálogo para mostrar la salida.
  • 18. Dialogo1.java package dialogo1; import javax.swing.JOptionPane; public class Dialogo1 { public static void main( String args[] ) { JOptionPane.showMessageDialog( null, "Bienvenido" ); } // fin de main } // fin de la clase Dialogo1
  • 19. Dialogo2.java package dialogo2; import javax.swing.JOptionPane; public class Dialogo2 { public static void main( String args[] ) { // pide al usuario que escriba su nombre String nombre = JOptionPane.showInputDialog( "Cual es su nombre?" ); String mensaje = String.format( "Bienvenido, %s, al curso!", nombre ); JOptionPane.showMessageDialog( null, mensaje ); } // fin de main } // fin de la clase DialogoNombre
  • 20. Concatenar Palabras. package concatenar; import javax.swing.JOptionPane; public class Concatenar { public static void main(String[] args) { String var1= new String("Hola"); String var2= new String("mundo"); String frase= var1 + " " + var2; JOptionPane.showMessageDialog( null, frase); }}