JF 7 1 Solution Esp

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

academy.oracle.

com

Conceptos fundamentales de Java


7-1: Clases, objetos y métodos
Soluciones a las prácticas
Vocabulario:

Identifique el término correspondiente a cada una de las siguientes definiciones.

Clase Plantilla utilizada para realizar objetos Java.


Referencia this Palabra clave opcional para tener acceso a los miembros y los métodos de una clase.
Objeto Instancia de una clase.
nuevo Operador utilizado para crear una instancia de una clase.
Recolección de bas- Función incorporada en la máquina virtual Java que libera memoria como objetos que ya no son
ura necesarios o que no se hacen referencia.
Método descriptor Método que cambia el estado de un objeto.
de mutación
Método descriptor Método que devuelve información sobre un objeto al programa de llamada.
de acceso
Método Procedimiento (cambia el estado de un objeto) o función (devuelve información sobre un objeto) en-
capsulado como parte de una clase.
Instanciar Verbo utilizado para describir el acto de crear un objeto de clase mediante la palabra clave new
(nuevo).
Inicialización Proceso de asignar un valor predeterminado a una variable.
null Referencia a un objeto que no se ha instanciado.
Finalizadores Método opcional llamado justo antes de que el recolector de basura elimina un objeto.
Referencia Nombre de una variable asociada con un objeto.
Constructor Método especial utilizado para crear una instancia de una clase.

Inténtelo/Resuélvalo

1. Cree una forma de clase simple que representa una forma en 2 dimensiones con segmentos de líneas para los
bordes. Debe tener la siguiente variable instancia: numSides (int), regular (booleano). Cree al menos dos construc-
tores y métodos captadores y establecedores.

public class Shape {


int numSides;
boolean regular;
Shape(){
numSides = 3;
regular=true;
}
Shape(int n, boolean regular){
numSides = n;
Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus afiliadas. Otros nombres pueden ser
marcas comerciales de sus respectivos dueños.
2

this.regular = regular;
}
public boolean isRegular(){
return regular;
}
public int getSides(){
return numSides;
}
public void setSides(int s){
numSides = s;
}
public void setRegular(boolean regular){
this.regular = regular;
}
}

2. Identifique las partes clave de la Clase Java a continuación. Coloque asteriscos junto a todas las variables de
instancias. Coloque un casillero junto a cada constructor. Haga un círculo en la firma de los métodos diferentes al
método de constructor. Coloque triángulos alrededor de los parámetros. Subraye los tipos de retornos de los
métodos.
public class Animal {
int weight, height;
double speed;
Animal() {
weight = 50;
height = 4;
speed = 2; //miles per hour
}
Animal(int w, int h, int s ) {
weight = w;
h = height;
speed = s
}
public double getTime(double miles) { //gets the number of hours to go these miles
return miles/speed;
}
public int getWeight() {
return weight;
}
public int getHeight() {
return height;
}
public double getSpeed() {
return speed;
}
}

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus afiliadas. Otros nombres pueden ser
marcas comerciales de sus respectivos dueños.
3

public class Animal {

int weight*, height*;


double speed*;
Animal() {
weight = 50;
height = 4;
speed = 2; //miles per hour
}
Animal(int w, int h, int s){
weight=w;
h=height;
speed=s
}
public double getTime(double miles){ //gets the number of hours to go these miles
return miles/speed;
}
public int getWeight(){
return weight;
}
public int getHeight(){
return height;
}
public double getSpeed(){
return speed;
}
}

3. Escriba el código para crear dos instancias de la plantilla de clase Animal incluida en el problema número 2.
Asegúrese de utilizar ambos constructores proporcionados. Luego, agregue un código Java que imprimirá lo
siguiente:
a. El animal 1 tiene una velocidad de ___.
b. El animal 2 tiene una velocidad de ___.
Asegúrese de que los espacios en blanco se completen automáticamente con las velocidades reales. Utilice los
métodos proporcionados para acceder a las velocidades.

Animal a1 = new Animal();


Animal a2 = new Animal(50,21,4);
System.out.println(“Animal #1 has a speed of “ + a1.getSpeed() + “Animal #2 has a speed of “ +
a2.getSpeed());

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus afiliadas. Otros nombres pueden ser
marcas comerciales de sus respectivos dueños.
4

4. Escriba una clase Estudiante. Debe tener las siguientes variables de instancias para el nombre, los créditos, el
promedio ponderado (GPA) y los puntos de calidad. Cree un método constructor. Cree los otros dos métodos de la
siguiente manera:

a. Un método que devolverá el promedio ponderado actual, que serán los puntos de calidad divididos por los
créditos.
b. Un método que tomará los créditos de la clase o el semestre junto con los puntos de calidad. Debe actualizar
los créditos, los puntos de calidad y el GPA.

public class Student {


String name;
int credits,qualityPoints;
double gpa;
Student(String name,int credits, int qualityPoints) {
this.name = name;
this.credits = credits;
this.qualityPoints = qualityPoints;
gpa = (double)qualityPoints/(double)credits;
}
public double getGPA(){
return gpa;
}
public addCredits(int credits, int qualityPoints){
this.credits += credits;
this.qualityPoints += qualityPoints;
gpa = (double)qualityPoints/(double)credits;
}
}

5. Con la clase creada en el número 4, cree tres instancias de la clase Estudiante de la tabla a continuación:

Nombre Créditos Puntos de calidad

Mary Jones 14 46
John Stiner 60 173
Ari Samala 31 69

Student mary = new Student(“Mary Jones”,14,46);


Student john = new Student(“John Stiner”,60,173);
Student ari = new Student(“Ari Samala”,31,69);

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus afiliadas. Otros nombres pueden ser
marcas comerciales de sus respectivos dueños.
5

6. Con las variables de instancias creadas en el punto 5, agregue 13 créditos y 52 puntos de calidad al estudiante “Ari
Samala”.

ari.addCredits(13,52);

7. Utilice la clase Carta de las diapositivas y pruebe el programa para asegurarse de que funciona. Agregue una
segunda Carta aleatoria. El código se incluye a continuación:
public class Card{
String suit,name;
int points;

Card(int n1, int n2){


suit = getSuit(n1);
name = getName(n2);
points = getPoints(name);
}

public String toString(){


return "The " + name + " of " + suit;
}

public String getName(int i){


if(i == 1) return "Ace";
if(i == 2) return "Two";
if(i == 3) return "Three";
if(i == 4) return "Four";
if(i == 5) return "Five";
if(i == 6) return "Six";
if(i == 7) return "Seven";
if(i == 8) return "Eight";
if(i == 9) return "Nine";
if(i == 10) return "Ten";
if(i == 11) return "Jack";
if(i == 12) return "Queen";
if(i == 13) return "King";
return "error";
}

public int getPoints(String n){


if(n == "Jack" ||n == "Queen" ||n == "King"||n == "Ten")
return 10;
if(n == "Two")
return 2;
if(n == "Three")
return 3;
if(n == "Four")
return 4;
if(n == "Five")
return 5;
if(n == "Six")
return 6;
if(n == "Seven")
return 7;
if(n == "Eight")
return 8;
if(n == "Nine")
return 9;
if(n == "Ace")
return 1;
Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus afiliadas. Otros nombres pueden ser
marcas comerciales de sus respectivos dueños.
6

return -1;
}

public String getSuit(int i){


if(i == 1) return "Diamonds";
if(i == 2) return "Clubs";
if(i == 3) return "Spades";
if(i == 4) return "Hearts";
return "error";
}
}
public class Main {

public static void main(String args[]){


int suitNumber = (int)(Math.random()*4.0+1);
int faceNumber = (int)(Math.random()*13.0+1);
Card newCard = new Card(suitNumber,faceNumber);
System.out.println(newCard);
}

public class Main {


public static void main(String args[]){

int suitNumber = (int)(Math.random()*4.0+1);


int faceNumber = (int)(Math.random()*13.0+1);
Card newCard = new Card(suitNumber,faceNumber);
System.out.println(newCard);

suitNumber = (int)(Math.random()*4.0+1);
faceNumber = (int)(Math.random()*13.0+1);
Card newCard2 = new Card(suitNumber,faceNumber);
System.out.println(newCard2);
}
}

8. Agregue un código a la clase Principal en el ejercicio 7 para hacer lo siguiente:

a. Mostrar el valor en puntos total de las dos cartas aleatorias.


b. Preguntar al usuario si quisiera otra carta. Si dicen Sí, mostrar la nueva carta y los puntos para las 3 cartas en
su “Mano”.
c. Aplique un bucle para permitir al usuario continuar agregando cartas a la mano hasta que la cantidad de
puntos llegue a 21 o el usuario decida no agregar más cartas o el total de las cartas sea 5.
import java.util.Scanner;

public class Main {


Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus afiliadas. Otros nombres pueden ser
marcas comerciales de sus respectivos dueños.
7

public static void main(String args[]){

int suitNumber = (int)(Math.random()*4.0+1;


int faceNumber = (int)(Math.random()*13.0+1);
Card newCard = new Card(suitNumber,faceNumber);
System.out.println(newCard);

suitNumber = (int)(Math.random()*4.0+1);
faceNumber = (int)(Math.random()*13.0+1);
Card newCard2 = new Card(suitNumber,faceNumber);
System.out.println(newCard2);

int points = newCard.points+newCard2.points;


System.out.println("The total points = " + points);

int numCards = 2;
Scanner reader = new Scanner(System.in);
int choice = 1;

while(choice == 1 && points < 21 && numCards < 5){

System.out.println("Do you want another card?");


System.out.println("1. Yes");
System.out.println("2. No");
choice=reader.nextInt();

if(choice == 1){
numCards++;

suitNumber = (int)(Math.random()*4.0+1);
faceNumber = (int)(Math.random()*13.0+1);
newCard2 = new Card(suitNumber,faceNumber);
System.out.println(newCard2);

points+ = newCard2.points;
System.out.println("The total point = " +
points);

}
}
}

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus afiliadas. Otros nombres pueden ser
marcas comerciales de sus respectivos dueños.

También podría gustarte