EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B)



Documentos relacionados
LA CLASE ARRAYLIST DEL API DE JAVA. MÉTODOS ADD, SIZE, ETC. CONCEPTO DE CLASE GENÉRICA O PARAMETRIZADA (CU00665B)

GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B)

EJERCICIOS BÁSICOS DE PROGRAMACIÓN EN C RESUELTOS. VARIABLES, PRINTF, SCANF, CÁLCULOS. (CU00527F)

EJERCICIOS DE PROGRAMACIÓN EN C. DIBUJAR UN ROMBO O DIAMANTE. CALCULAR SUMATORIOS. (CU00542F)

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)

EJERCICIOS RESUELTOS. EJEMPLOS CON NÚMEROS ALEATORIOS EN JAVA. RANDOM NEXTINT, NEXTDOUBLE, ETC. (CU00909C)

CONCEPTO O DEFINICIÓN DE HERENCIA EN JAVA Y EN PROGRAMACIÓN ORIENTADA A OBJETOS. QUÉ ES? EXTENDS. EJEMPLOS. (CU00684B)

Estructura de datos y Programación

Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)

Forma Básica Clase Java

La sintaxis básica para definir una clase es la que a continuación se muestra:

CONDICIONALES EN PHP: IF ELSE, IF ELSE IF. CONDICIONAL TERNARIO. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00817B)

TIPOS DE BUCLES O CICLOS DE REPETICIÓN EN PHP: WHILE, DO WHILE Y FOR. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00822B)

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

Tema 7: Polimorfismo. Índice

LA PALABRA CLAVE THIS EN JAVA. CONTENIDO NULL POR DEFECTO DE UN OBJETO. SOBRECARGA DE NOMBRES. EJEMPLOS (CU00654B)

MATRICES Y ARRAYS (ARREGLOS) MULTIDIMENSIONALES EN PHP. EJERCICIOS RESUELTOS. EJEMPLOS (CU00824B)

CLASE DATE DEL API JAVA. MÉTODOS BEFORE, AFTER, TOLOCALESTRING, TOGMTSTRING Y GETTIME. EJEMPLOS. (CU00924C)

Clase adicional 2. Estructuras básicas de control. Temas

Uso de centinelas para la toma de decisiones. Esquemas y diagramas de flujo. Ejemplos resueltos. (CU00167A)

GENERACIÓN DE NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00908C)

Estructuras de control condicionales

GENERAR NÚMEROS O SECUENCIAS ALEATORIOS EN C. SRAND Y RAND. TIME NULL. RAND_MAX. (CU00525F)

SOBREESCRIBIR MÉTODOS EN JAVA: TOSTRING, EQUALS. EJEMPLOS Y EJERCICIOS RESUELTOS. COMPARAR OBJETOS. (CU00694B)

OPERADORES LÓGICOS JAVASCRIPT. EJEMPLOS. RELACIONALES MAYOR, MENOR, IGUAL, DISTINTO. AND, OR, NOT. CORTO- CIRCUITO (CU01117E)

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

CONCEPTO Y DEFINICIÓN DE CLASE EN JAVA. OBJETOS DEL MUNDO REAL Y ABSTRACTOS. EJEMPLOS. EJERCICIO (CU00644B)

Introducción a MATLAB

Tema 3. Programación orientada a objetos en Java (Parte 1)

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?

Categorías de métodos. Métodos constructores y destructores

Métodos. Los métodos pueden ser de un tipo específico como int, double, String, Cuenta, etc. o simplemente no tener algún tipo como void.

Modulo 11. Clases y Objetos en Java

Ejercicio ejemplo resuelto de uso de arrays (arreglos) dinámicos en pseudocódigo I (CU00214A)

Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:

CÓMO CREAR CONSTRUCTORES E INICIALIZAR OBJETOS EN JAVA. EJERCICIO EJEMPLO RESUELTO. (CU00639B)

LA MÁQUINA VIRTUAL JAVA (JVM). COMPILADOR E INTÉRPRETE. BYTECODE, CÓDIGO FUENTE Y CÓDIGO MÁQUINA. (CU00611B)

Tema: Clases y Objetos en C++. Parte II.

BORRAR DATOS EN TABLAS CON PHP Y MySQL. DIFERENCIA ENTRE DELETE Y TRUNCATE. SELECT CON WHERE. (CU00844B)

Estructuras de control selectivas

En este capitulo se estudiarán los conceptos relacionados a métodos, como lo son sobrecarga, métodos estáticos.

Problemas de Recursividad

REDONDEAR A 2 O MÁS DECIMALES EN JAVA. PROBLEMA Y ERRORES DE PRECISIÓN DECIMAL Y REDONDEO. BIGINTEGER, BIGDECIMAL (CU00907C)

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015

La ayuda y referencia de Visual Basic y otros recursos como herramientas para los programadores. (CU00306A)

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Configuración de módulos con Joomla: orden, acceso, asignación. Ejemplo con un menú. (CU00416A)

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Prof. Dr. Paul Bustamante

FUNCIONES O MÉTODOS. Algoritmia y Programación

CONDICIONALES SWITCH CASE DEFAULT BREAK EN C. ELEGIR ENTRE VARIAS OPCIONES. EJEMPLO. (CU00532F)

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C)

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Práctica 1: Una primera aproximación a la programación de sistemas concurrentes y distribuidos en C++

Introducción a las sentencias de control

GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL

Estructuras de control repetitivas/iterativas

Introducción a MATLAB

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Práctica 5c. Práctica 5c. José M. Ordax

Select Case Visual Basic. Palabras clave To, Is. Instrucción Según (Caso) Hacer. Ejemplos y ejercicios resueltos (CU00325A)

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

Ejercicios ejemplos resueltos Visual Basic con Labels, Textbox, y Buttons (Command Buttons) (CU00322A)

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F)

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

DaVinciTEXTIL. Codificación de artículos

PROCESAR DATOS DE UN FORMULARIO HTML EN PHP CON $_POST. EJERCICIOS RESUELTOS Y EJEMPLOS. (CU00834B)

Bloque II. Elementos del lenguaje de programación Java

DOCUMENTAR PROYECTOS JAVA CON JAVADOC. COMENTARIOS, SÍMBOLOS, TAGS (DEPRECATED, PARAM, RETURN, ETC.) (CU00680B)

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }

Los Constructores(1)

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

Tema: Arreglos de Objetos en C++.

EJEMPLO EJERCICIO RESUELTO CON POLIMORFISMO, SOBREESCRITURA DE MÉTODOS Y HERENCIA JAVA. CÓDIGO (CU00691B)

QUÉ ES JAVASCRIPT? PRINCIPALES USOS. SERVIDOR Y CLIENTE. HTML, CSS Y PROGRAMACIÓN. EFECTOS DINÁMICOS (CU01103E)

Introducción a la Programación en Java

CONFIGURACIÓN BÁSICA DE NOTEPAD++ PARA CREAR PÁGINAS PHP. ALGUNAS VENTAJAS DE ESTE EDITOR COMO SUS EXTENSIONES O PLUGINS.

CARGANDO EL PRIMER PROGRAMA EN ARDUINO OBJETIVOS MATERIAL NECESARIO

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

QUÉ ES Y PARA QUÉ SIRVE JAVASCRIPT? EMBEBER JAVASCRIPT EN HTML. ALTERNATIVAS. EJEMPLO SENCILLO. (CU00730B)

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 E V E N T O S. Ing. Bruno López Takeyas, M.C.

Problema 1: Órdenes de la shell; Datos de una clase; Tipos primitivos; Sangrado

Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo.

DESCARGAR E INSTALAR EL CLIENTE FTP FILEZILLA. TRABAJAR EN UN SERVIDOR REMOTO. (CU00810B)

INTERACCION ENTRE OBJETOS

Estructura de datos y Programación. Tema: Clase String Año: 2012

INSTITUTO SUPERIOR DE FORMACIÓN TÉCNICA Nº 177

EJERCICIOS DE PROGRAMACIÓN EN C. PASO DE PSEUDOCÓDIGO A CÓDIGO. BUCLES, CONDICIONES (CU00539F)

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

MATRICES, ARREGLOS O ARRAYS DE ELEMENTOS GRÁFICOS EN JAVA. EJEMPLO CON JLABEL Y JTEXTFIELD. (CU00930C)

Introducción a Java. Introducción a Java. Programación I

Transcripción:

APRENDERAPROGRAMAR.COM EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión: 2029 Resumen: Entrega nº52 curso Aprender programación Java desde cero. Autor: Alex Rodríguez

UN EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS Para familiarizarnos con el código Java escribe, ejecuta y estudia el código que mostramos a continuación, correspondiente a dos clases. Todos los elementos que forman parte de él ya los hemos estudiado excepto la llamada this (0, 0, ). La palabra clave this tiene distintos usos en Java y en general podríamos interpretarla como este objeto. La invocación this, o this (parámetros) supone una invocación al constructor que coincida con los parámetros que se pasan para que se ejecute. Al igual que existen formas de invocar a métodos, existen formas de invocar a constructores, y ésta es una de ellas. El código de la primera clase sería el siguiente: /* Esta clase representa un depósito cilíndrico donde se almacena aceite */ public class Deposito { //Campos de la clase private float diametro; private float altura; private String iddeposito; //Constructor sin parámetros auxiliar public Deposito () { //Lo que hace es llamar al constructor con parámetros pasándole valores vacíos this(0,0,""); } //Cierre del constructor //Constructor de la clase que pide los parámetros necesarios public Deposito (float valor_diametro, float valor_altura, String valor_iddeposito) { if (valor_diametro > 0 && valor_altura > 0) { diametro = valor_diametro; altura = valor_altura; iddeposito = valor_iddeposito; } else { diametro = 10; altura = 5; iddeposito = "000"; System.out.println ("Creado depósito con valores por defecto diametro 10 metros altura 5 metros id 000" ); } } //Cierre del constructor

public void setvaloresdeposito (String valor_iddeposito, float valor_diametro, float valor_altura) { iddeposito = valor_iddeposito; diametro = valor_diametro; altura = valor_altura; if (iddeposito!="" && valor_diametro > 0 && valor_altura > 0) { } else { System.out.println ("Valores no admisibles. No se han establecido valores para el depósito"); //Deposito (0.0f, 0.0f, ""); Esto no es posible. Un constructor no es un método y por tanto no podemos llamarlo iddeposito = ""; diametro = 0; altura = 0; } } //Cierre del método public float getdiametro () { return diametro; } //Método de acceso public float getaltura () { return altura; } //Método de acceso public String getiddeposito () { return iddeposito; } //Método de acceso public float valorcapacidad () { //Método tipo función float capacidad; float pi = 3.1416f; //Si no incluimos la f el compilador considera que 3.1416 es double capacidad = pi * (diametro/2) * (diametro/2) * altura; return capacidad; } } //Cierre de la clase En el método setvaloresdeposito nos encontramos un código un tanto extraño: un if donde las instrucciones a ejecutar se encuentran vacías. Esto es admitido en Java, tanto en un if como en un else o en otras instrucciones. En este caso, el código equivale a: Si el iddeposito es distinto de una cadena vacía y el valor_diametro es mayor que cero y el valor_altura es mayor que cero no se hace nada, y en caso contrario se han de ejecutar las instrucciones indicadas en el else. Este tipo de construcciones no consideramos conveniente utilizarlas frecuentemente. Tan solo pueden ser indicadas cuando queremos remarcar que en determinadas circunstancias no se debe ejecutar ninguna instrucción. Otra cuestión a tener en cuenta es que de momento estamos desarrollando una programación informal: el sistema de comentarios no se atiene a lo establecido por el sistema de documentación de Java, y hemos incluido algunas sentencias de impresión por consola que normalmente no forman parte del código de los programas. Usaremos estas y otras técnicas informales con el fin de facilitar el aprendizaje, no porque puedan ser recomendadas como técnicas de programación. La segunda clase sería la siguiente: /*Esta clase representa un conjunto de depósitos formado por entre 2 y 3 depósitos */ public class GrupoDepositos { //Campos de la clase, algunos de ellos son tipo objetos de otra clase private Deposito deposito1; private Deposito deposito2; private Deposito deposito3; private String idgrupo; private int numerodepositosgrupo;

//Constructor para la clase. En ella se crean objetos de otra clase. public GrupoDepositos (int numerodedepositosgrupo, String valor_idgrupo) { idgrupo = valor_idgrupo; switch (numerodedepositosgrupo) { case 1: System.out.println ("Un grupo ha de tener más de un depósito"); case 2: deposito1 = new Deposito(); /*Al crear el objeto automáticamente se llama al constructor del mismo, en este caso sin parámetros. ESTO ES EJEMPLO DE SINTAXIS DE CREACIÓN DE UN OBJETO, EN ESTE CASO DENTRO DE OTRO */ deposito2 = new Deposito(); numerodepositosgrupo = 2; case 3: deposito1 = new Deposito(); deposito2 = new Deposito(); deposito3 = new Deposito(); numerodepositosgrupo = 3; default: System.out.println ("No se admiten más de tres depósitos"); //Esto no evita que se cree el objeto. } //Cierre del switch } //Cierre del constructor public int getnumerodepositosgrupo () { return numerodepositosgrupo; } public String getidgrupo () { return idgrupo; } public float capacidaddelgrupo () { //Este método usa objetos de otra clase e invoca métodos de otra clase if (numerodepositosgrupo == 2) { return (deposito1.valorcapacidad() + deposito2.valorcapacidad() ); } else { return (deposito1.valorcapacidad() + deposito2.valorcapacidad()+ deposito3.valorcapacidad() ); } //Si el grupo se ha creado con un número de depósitos distinto de 2 o 3 saltará un error en tiempo de ejecución } //Cierre del método } //Cierre de la clase Con botón derecho sobre el icono de la clase GrupoDepositos, crea un grupo de depósitos que conste de 3 depósitos y cuyo idgrupo sea Grupo KHP. Invoca los métodos que devuelven el número de depósitos del grupo, el identificador del grupo y la capacidad de los depósitos del grupo. Como capacidad deberás obtener un valor de aproximadamente 1178.1 unidades cúbicas. Verifica con la calculadora si este valor es correcto y trata de razonar sobre por qué se obtiene este valor y no otro. Crea también distintos objetos de tipo Deposito y utiliza sus métodos. En el caso de

resultados numéricos, comprueba si los resultados que te ofrece el ordenador son correctos comparándolos con los resultados que te ofrece una calculadora. Este ejemplo de código, todavía muy elemental y rudimentario, tiene un diagrama de clases donde nos indica que la clase GrupoDepositos usa a la clase Deposito. A modo de resumen, el siguiente esquema nos indica lo que podemos hacer con este código. De este ejemplo lo único que nos interesa es practicar cómo una clase puede usar objetos y métodos de otra clase y la sintaxis a emplear. Aunque no hemos creado ningún programa, estamos viendo cómo crear clases y objetos que intervendrán en los programas. Qué podemos hacer con este código? Crear objetos Deposito Especificando diámetro, altura e id Con unos valores de diámetro, altura e id por defecto Taxi y Consultar altura Consultar diámetro Consultar iddeposito Establecer valores de altura, diámetro e id Calcular capacidad en volumen = *R 2 *H Crear objetos GrupoDeposito Formados por 2 ó 3 depósitos con dimensiones e id por defecto (iguales para todos) y Consultar la id del grupo Consultar el número de depósitos del grupo Calcular la capacidad del grupo Próxima entrega: CU00653B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&itemid=188