Está en la página 1de 11

Ejercicios de autoevaluación

3.1 Complete las siguientes oraciones:


a) Una casa es para un plano de construcción lo que un(a) objeto. para una clase.
b) Cada declaración de clase que empieza con la palabra clave public.debe almacenarse en un archivo
que tenga exactamente el mismo nombre de la clase, y que termine con la extensión de nombre de
archivo
.java.
c) Cada declaración de clase contiene la palabra clave class, seguida inmediatamente por el nombre
de la clase.
d) La palabra clave new. crea un objeto de la clase especifi cada a la derecha de la palabra clave.
e) Cada parámetro debe especifi car un(a) tipo y un(a) nombre.
f ) De manera predeterminada, se considera que las clases que se compilan en el mismo directorio
están en el
mismo paquete, conocido como paquete predeterminado.
g) Cuando cada objeto de una clase mantiene su propia copia de un atributo, el campo que representa a
este
atributo se conoce también como instancia..
h) Java proporciona dos tipos primitivos para almacenar números de punto fl otante en la memoria:
float
_____ y bouble.
i) Las variables de tipo double representan a los números de punto fl otante de precisión doble.
j) El método nextDouble de la clase Scanner devuelve un valor double.
k) La palabra clave public es un(a) modificador de acceso.
l) El tipo de valor de retorno void indica que un método realizará una tarea, pero no devolverá
información cuando complete su tarea.
m) El método nextLine de Scanner lee caracteres hasta encontrar una nueva línea, y después devuelve
esos caracteres como un objeto String.
n) La clase String está en el paquete java.lang.
o) No se requiere un(a) declaracion import si siempre hacemos referencia a una clase con su
nombre de clase
completamente califi cado.
p) Un número de punto flotante es un número con un punto decimal, como 7.33, 0.0975 o
1000.12345.
q) Las variables de tipo float representan números de punto fl otante de precisión simple.
r) El especifi cador de formato %f. se utiliza para mostrar valores de tipo float o double.
s) Los tipos en Java se dividen en dos categorías: tipos primitivos y tipos por referencia.
3.2 Conteste con verdadero o falso a cada una de las siguientes proposiciones; en caso de ser falso,
explique por qué.
a) Por convención, los nombres de los métodos empiezan con la primera letra en mayúscula y todas las
palabras
subsiguientes en el nombre empiezan con la primera letra en mayúscula. (falso) metodos primera en
mayuscula
b) Una declaración import no es obligatoria cuando una clase en un paquete utiliza a otra clase en el
mismo
paquete. (verdadero)
c) Los paréntesis vacíos que van después del nombre de un método en la declaración de un método
indican
que éste no requiere parámetros para realizar su tarea. (verdadero)
d) Las variables o los métodos declarados con el modifi cador de acceso private son accesibles sólo para
los
métodos de la clase en la que se declaran. (verdadero)
e) Una variable de tipo primitivo puede usarse para invocar un método. (Falso.)
f ) Las variables que se declaran en el cuerpo de un método específi co se conocen como variables de
instancia,
y pueden utilizarse en todos los métodos de la clase. Falso.) variables locales,
y sólo se pueden utilizar en el método en el que están declaradas.
g) El cuerpo de cada método está delimitado por llaves izquierda y derecha ({ y }). (verdadero)
h) Las variables locales de tipo primitivo se inicializan de manera predeterminada. (falso) Las
primitivo se inicializan de manera predeterminada, cada variable local se le debe asignar valor
i) Las variables de instancia de tipo por referencia se inicializan de manera predeterminada con el valor
null. (verdadero)

j) Cualquier clase que contenga public static void main( String args[] ) puede usarse para ejecutar una
aplicación. (verdadero)
k) El número de argumentos en la llamada a un método debe coincidir con el número de parámetros en
la lista
de parámetros de la declaración del método. (verdadero)
l) Los valores de punto fl otante que aparecen en código fuente se conocen como literales de punto fl
otante, y
son de tipo float de manera predeterminada. (falso) son de tipo double
3.3 ¿Cuál es la diferencia entre una variable local y un campo?
Una variable local se declara en el cuerpo de un método, y sólo puede utilizarse desde el punto en el
que se
declaró, hasta el fi nal de la declaración del método. Un campo se declara en una clase, pero no en el
cuerpo de alguno
de los métodos de la clase.
3.4 Explique el propósito de un parámetro de un método. ¿Cuál es la diferencia entre un parámetro y un
argumento?
Un parámetro representa la información adicional que requiere un método para realizar su tarea.
Un argumento es el valor actual se llama a un método, los valores de los argumentos se pasan al
método, para que éste pueda realizar su tarea.
3.5 ¿Cuál es el propósito de la palabra clave new? Explique lo que ocurre cuando se utiliza en una
aplicación.
Las expresiones de creación de instancias de clases que empiezan con la palabra clave new crean
nuevos objetos.

3.6 ¿Qué es un constructor predeterminado? ¿Cómo se inicializan las variables de instancia de un


objeto, si una
clase sólo tiene un constructor predeterminado?
El compartimiento
intermedio contiene los atributos de la clase, que corresponden a los campos en Java. El
compartimiento inferior
contiene las operaciones de la clase, que corresponden a los métodos y constructores en Java.

3.7 Explique el propósito de una variable de instancia.


Cuando cada objeto de una clase mantiene su propia copia de un atributo, el campo que representa a
ese atributo
también se conoce como variable de instancia. Cada objeto (instancia) de la clase tiene una instancia
separada de la
variable en la memoria.

3.8 La mayoría de las clases necesitan importarse antes de poder utilizarlas en una aplicación ¿Por qué
cualquier
aplicación puede utilizar las clases System y String sin tener que importarlas primero?
Las clases System y
String están en el paquete java.lang, que se importa de manera implícita en todo programa de Java,
por lo que
todos los programas pueden usar las clases del paquete java.lang sin tener que importarlas de
manera explícita

3.9 Explique cómo utilizaría un programa la clase Scanner, sin importarla del paquete java.util.
3.10 Explique por qué una clase podría proporcionar un método establecer y un método obtener para
una variable de
instancia.
La declaración import no es obligatoria si siempre hacemos referencia a la clase Scanner como
java.util.Scanner, que incluye el nombre completo del paquete y de la clase

3.11 Modifi que la clase LibroCalificaciones (fi gura 3.10) de la siguiente manera:
a) Incluya una segunda variable de instancia String, que represente el nombre del instructor del curso.
b) Proporcione un método establecer para modifi car el nombre del instructor, y un método obtener para obtener
el nombre.
c) Modifi que el constructor para especifi car dos parámetros: uno para el nombre del curso y otro para el nombre
del instructor.
d) Modifi que el método mostrarMensaje, de tal forma que primero imprima el mensaje de bienvenida y el
nombre del curso, y que después imprima "Este curso es presentado por: ", seguido del nombre del
instructor.

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package pruebalibrocalificaciones;

/**
*
* @author yordonve
*/

public class LibroCalificaciones


{

private String cadena;

// Constructor
public LibroCalificaciones(String mensaje)
{ // Abre el metodo Recibe_Curso
cadena = mensaje;
} // Cierra el metodo Recibe_Curso

public String Retorna()


{ // Abre metodo Regresa_Cadena
return cadena;
} // Cierra metodo Regresa_Cadena

--
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
*/
package pruebalibrocalificaciones;
import java.util.Scanner; // el programa usa la clase Scanner

/**
*
* @author yordonve
*/

public class PruebaLibroCalificaciones


{
public static void main(String args[])
{ // Abre metodo main
LibroCalificaciones nombre_curso = new LibroCalificaciones("Programacion en java" );
LibroCalificaciones nombre_profesor = new LibroCalificaciones( "Yuynan");
System.out.printf("\nEl nombre del curso es: %s\n", nombre_curso.Retorna() );
System.out.printf("\nEl nombre del profesor es: %s\n", nombre_profesor.Retorna());
}
}

3.12 Modifi que la clase Cuenta (fi gura 3.13) para proporcionar un método llamado cargar, que retire dinero de
un objeto Cuenta. Asegure que el monto a cargar no exceda el saldo de Cuenta. Si lo hace, el saldo debe permanecer sin
cambio y el método debe imprimir un mensaje que indique "El monto a cargar excede el saldo de la cuenta".
Modifi que la clase PruebaCuenta (fi gura 3.14) para probar el método cargar.

package cuenta;
import java.util.Scanner;

public class PruebaCuenta


{
// el método main empieza la ejecución de la aplicación de Java
/**
* Punto de entrada a la clase y a la aplicación.
* @param args matriz de argumentos de cadena.
*/
public static void main(String[] args) {
Cuenta cuenta = new Cuenta( 50.00 );

System.out.printf("Saldo de cuenta: $%.2f\n",


cuenta.getSaldo());

//Se crea un objeto Scanner para obtener la entrada


//de datos del usuario.
Scanner entrada = new Scanner(System.in);

System.out.println("Escriba el monto a depositar de la cuenta: ");


double monto = entrada.nextDouble();
System.out.printf("\nsumando %.2f al saldo de cuenta\n\n", monto);
cuenta.abonar(monto);

System.out.println("Escriba el monto a retirar de la cuenta");


monto = entrada.nextDouble();
System.out.printf("\nretirando %.2f de la cuenta\n\n", monto);
cuenta.retirar(monto);

System.out.println("Saldo en la cuenta: " + cuenta.getSaldo());

}
}

package cuenta;
public class Cuenta {
private double saldo = 0.0;

/**
* Constructor de Cuenta que inicializa el saldo,
* si el saldo es menor a 0 lo inicializa con cero.
* @param saldo double con el saldo de la cuenta.
*/
public Cuenta(double saldo){
if( saldo > 0.0 ){
this.saldo = saldo;
}
}

/**
* Método que abona alguna cantidad a este saldo.
* @param monto double Con la cantidad a sumar al saldo.
*/
public void abonar(double monto) {
saldo = saldo + monto;
}

/**
* Método que retira alguna cantidad a esta cuenta el saldo.
* @param monto double Con la cantidad a restar al saldo.
*/
public void retirar(double monto) {
if(monto > saldo) {
System.out.println("El monto a cargar excede el "
+ "saldo de la cuenta");
} else {
saldo = saldo - monto;
}
}

/**
* Método que obtiene el saldo
* @return saldo double con el saldo de esta cuenta.
*/
public double getSaldo(){
return saldo;
}
}

3.13 Cree una clase llamada Factura, que una ferretería podría utilizar para representar una factura para un artículo
vendido en la tienda. Una Factura debe incluir cuatro piezas de información como variables de instancia: un número
de pieza (tipo String), la descripción de la pieza (tipo String), la cantidad de artículos de ese tipo que se van a comprar
(tipo int) y el precio por artículo (double). Su clase debe tener un constructor que inicialice las cuatro variables de
instancia.
Proporcione un método establecer y un método obtener para cada variable de instancia. Además, proporcione un
método llamado obtenerMontoFactura, que calcule el monto de la factura (es decir, que multiplique la cantidad por el
precio por artículo) y después devuelva ese monto como un valor double. Si la cantidad no es positiva, debe
establecerse
en 0. Si el precio por artículo no es positivo, debe establecerse a 0.0. Escriba una aplicación de prueba llamada Prueba-
Factura, que demuestre las capacidades de la clase Factura.

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
*/
package factura;

/**
*
* @author yordonve
*/

public class Factura {

String numeroPieza = "";

String descripcionPieza = "";

int cantidadPieza = 0;

double precioPieza = 0;

public Factura(String numeroPieza, String descripcionPieza,


int cantidadPieza, double precioPieza) {
this.numeroPieza = numeroPieza;
this.descripcionPieza = descripcionPieza;
if (cantidadPieza < 0) {
this.cantidadPieza = 0;
} else {
this.cantidadPieza = cantidadPieza;
}
if (precioPieza < 0) {
this.precioPieza = 0.0;
} else {
this.precioPieza = precioPieza;
}
}

public String getNumeroPieza() {


return numeroPieza;
}

public void setNumeroPieza(String numeroPieza) {


this.numeroPieza = numeroPieza;
}

public String getDescripcionPieza() {


return descripcionPieza;
}

public void setDescripcionPieza(String descripcionPieza) {


this.descripcionPieza = descripcionPieza;
}

public int getCantidadPieza() {


return cantidadPieza;
}

public void setCantidadPieza(int cantidadPieza) {


this.cantidadPieza = cantidadPieza;
}

public double getPrecioPieza() {


return precioPieza;
}

public void setPrecioPieza(double precioPieza) {


this.precioPieza = precioPieza;
}

public double obtenerMontoFactura() {


double resultado = 0.0;
resultado = getCantidadPieza() * getPrecioPieza();
return resultado;
}
}

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package factura;

/**
*
* @author yordonve
*/
public class PruebaFactura {

public static void main(String[] args) {


Factura factura = new Factura("15478", "Tornillo", 100, 5.021);
System.out.println("Monto de la factura: " + factura.obtenerMontoFactura());

factura = new Factura("14444", "clavo", -1, 100);


System.out.println("Monto de la factura: " + factura.obtenerMontoFactura());

factura = new Factura("10003", "tuerca", 10, -100);


System.out.println("Monto de la factura: " + factura.obtenerMontoFactura());

factura = new Factura("10004", "Foco", -10, 250);


System.out.println("Monto de la factura: " + factura.obtenerMontoFactura());
}
}

3.14 Cree una clase llamada Empleado, que incluya tres piezas de información como variables de instancia: un primer
nombre (tipo String), un apellido paterno (tipo String) y un salario mensual (double). Su clase debe tener un constructor
que inicialice las tres variables de instancia. Proporcione un método establecer y un método obtener para cada
variable de instancia. Si el salario mensual no es positivo, establézcalo a 0.0. Escriba una aplicación de prueba
llamada
PruebaEmpleado, que demuestre las capacidades de cada Empleado. Cree dos objetos Empleado y muestre el salario
anual de cada objeto. Después, proporcione a cada Empleado un aumento del 10% y muestre el salario anual de cada
Empleado otra vez.

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
*/
package empleado;

/**
*
* @author yordonve
*/
public class Empleado {

String primerNombre = "";

String apellidoPaterno = "";

double salarioMensual = 0.0;

public Empleado(String primerNombre,


String apellidoPaterno, double salarioMensual) {
this.primerNombre = primerNombre;
this.apellidoPaterno = apellidoPaterno;
if(salarioMensual < 0) {
this.salarioMensual = 0.0;
} else {
this.salarioMensual = salarioMensual;
}
}

public String getPrimerNombre() {


return primerNombre;
}

public void setPrimerNombre(String primerNombre) {


this.primerNombre = primerNombre;
}

public String getApellidoPaterno() {


return apellidoPaterno;
}

public void setApellidoPaterno(String apellidoPaterno) {


this.apellidoPaterno = apellidoPaterno;
}

public double getSalarioMensual() {


return salarioMensual;
}

public void setSalarioMensual(double salarioMensual) {


this.salarioMensual = salarioMensual;
}

public void aumento() {


this.salarioMensual = this.salarioMensual * 1.10;
}
}

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package empleado;

/**
*
* @author yordonve
*/
public class PruebaEmpleado {

public static void main(String[] args) {


Empleado empleado1 = new Empleado(
"Alejandro", "Luna", 75000);
Empleado empleado2 = new Empleado(
"yuynan", "Ordonez", -1000);

System.out.println("El nombre del empleado es: "


+ empleado1.getPrimerNombre() + " "
+ empleado1.getApellidoPaterno());
System.out.println("Tiene un salario de: "
+ empleado1.getSalarioMensual());

System.out.println("El nombre del empleado es: "


+ empleado2.getPrimerNombre()
+ " " + empleado2.getApellidoPaterno());
System.out.println("Tiene un salario de: "
+ empleado2.getSalarioMensual());

empleado1.aumento();

System.out.println("El nombre del empleado es: "


+ empleado1.getPrimerNombre()
+ " " + empleado1.getApellidoPaterno());
System.out.println("Tiene un salario de: "
+ empleado1.getSalarioMensual());
}
}

3.15 Cree una clase llamada Fecha, que incluya tres piezas de información como variables de instancia —un mes
(tipo int), un día (tipo int) y un año (tipo int). Su clase debe tener un constructor que inicialice las tres variables
de instancia, y debe asumir que los valores que se proporcionan son correctos. Proporcione un método establecer y
un
método obtener para cada variable de instancia. Proporcione un método mostrarFecha, que muestre el mes, día y año,
separados por barras diagonales (/). Escriba una aplicación de prueba llamada PruebaFecha, que demuestre las
capacidades
de la clase Fecha.

*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
*/
package fecha;

/**
*
* @author yordonve
*/
public class Fecha {

/**
* Contiene el mes del año.
*/
int mes = 0;
/**
* Contiene el día del año.
*/
int dia = 0;
/**
* Contiene el año.
*/
int anio = 0;

public Fecha(int mes, int dia, int anio) {


if ( mes < 1 || mes > 12 ) {
this.mes = 1;
} else {
this.mes = mes;
}
if (dia < 1 || dia > 31 ) {
this.dia = 1;
} else {
this.dia = dia;
}
if ( anio < 0 ) {
this.anio = 0;
} else {
this.anio = anio;
}
}

public int getMes() {


return mes;
}

public void setMes(int mes) {


this.mes = mes;
}
public int getDia() {
return dia;
}

public void setDia(int dia) {


this.dia = dia;
}

public int getAnio() {


return anio;
}

public void setAnio(int anio) {


this.anio = anio;
}
}
----------
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fecha;

/**
*
* @author yordonve
*/
public class PruebaFecha {

public String mostrarFecha() {


String fecha = getMes() + " / " + getDia() + " / "
+ getAnio();
return fecha;
}

public static void main(String[] args) {


Fecha fecha = new Fecha(02, 28, 2011);

System.out.println("La fecha es: " + fecha.mostrarFecha());


}
}

También podría gustarte