Skip to content
Snippets Groups Projects
Commit 19988f52 authored by carmuno's avatar carmuno :tennis:
Browse files

mas clases

parent 651d957d
No related branches found
No related tags found
No related merge requests found
package examen2;
import java.time.LocalDateTime;
import java.util.ArrayList;
/*
* @author Carlos Noé Muñoz
* @version 1.0
*
*/
public class Abiertos extends Billete{
private String inicioTrayecto;
private String finTrayecto;
private String nombre;
private static ArrayList <String> personas = new ArrayList<String>();
//se supone que independientemente de que instancies un objeto u otro, la lista de persona que tenemos queremso qeu sea siempre la misma
// y que no se reinicie cada vez que se instancie la clase.
public Abiertos(LocalDateTime fechaYhora, String inicioTrayecto, String finTrayecto, String nombre){
super(fechaYhora, inicioTrayecto, finTrayecto);
assert(isTrayectoCorrecto(inicioTrayecto, finTrayecto));
this.inicioTrayecto = inicioTrayecto;
this.finTrayecto = finTrayecto;
this.nombre = nombre;
}
public Abiertos(String inicioTrayecto, String finTrayecto, String nombre) {
super(null, finTrayecto, finTrayecto); //ya se que esta mal, pq si le pasas una hora nula en la superclase
//petaria pero no se me ocuure hacerlo de otra manera a no ser que pongamos la clase abiertos como superclase pero tendramos derivados
//otros probalemas como la creación de aun arraylist para todos cuando solo lo queremso para abiertos.
//aademás t dice que puede elegir que no tenga hora "puede", de ahi a la construcción de dos constructores.
assert(isTrayectoCorrecto(inicioTrayecto, finTrayecto));
this.inicioTrayecto = inicioTrayecto;
this.finTrayecto = finTrayecto;
this.nombre = nombre;
}
@Override
public String toString() {
return "Hola soy un billete de abierto a la vida";
}
@Override
public double getPrecio() {
if(personas.contains(nombre)) {
return super.getPrecio();
}
else {
return super.getPrecio() * 0.10;
}
}
}
package examen2;
import java.time.LocalDateTime;
public class Billete{
private LocalDateTime fechaYhora;
private String inicioTrayecto;
private String finTrayecto;
public Billete(LocalDateTime fechaYhora, String inicioTrayecto, String finTrayecto){
assert(isFechaYHoraCorrecta(fechaYhora));
this.fechaYhora = fechaYhora;
this.inicioTrayecto = inicioTrayecto;
this.finTrayecto = finTrayecto;
}
public double getPrecio() {
return 10;
}
public String getInicioTrayecto() {
return inicioTrayecto;
}
public String getFinTrayecto() {
return finTrayecto;
}
public LocalDateTime getFechaYHora() {
return fechaYhora;
}
public boolean isFechaYHoraCorrecta(LocalDateTime fechaYhora) {
return fechaYhora != null && fechaYhora.isAfter(LocalDateTime.now());
}
public boolean isTrayectoCorrecto(String inicioTrayecto, String finTrayecto) {
return inicioTrayecto != null && finTrayecto != null && !inicioTrayecto.isEmpty() && !finTrayecto.isEmpty() && !inicioTrayecto.equals(finTrayecto);
}
}
package examen2;
import java.time.LocalDateTime;
import java.util.ArrayList;
/*
* @author Carlos Noé Muñoz
* @Version 1.0
*
*/
class BilleteDeIdaYVuelta{
private ArrayList<Billete> viajes;
private int abiertos = 0;
private int infantiles = 0;
private int cont=0;
public BilleteDeIdaYVuelta() {
viajes = new ArrayList<Billete>();
}
public void addbillete(Billete mibillete) {
assert(abiertos+infantiles == 2);
if(mibillete instanceof Abiertos) {
assert(abiertos==1);
viajes.add(mibillete);
abiertos ++;
}
if(mibillete instanceof Infantiles) {
assert(infantiles==1);
viajes.add(mibillete);
infantiles ++;
}
if(cont == 2) {
check();
}
}
public void check() {
for(int i=0;i<viajes.size();i++) {
assert(!viajes.get(i).getInicioTrayecto().equals(viajes.get(i+1).getFinTrayecto()));
assert(!viajes.get(i).getFinTrayecto().equals(viajes.get(i+1).getInicioTrayecto()));
}
}
}
package examen2;
import java.time.LocalDateTime;
public class Infantiles extends Billete {
private int edad;
private LocalDateTime fechaYhora;
private String inicioTrayecto;
private String finTrayecto;
public Infantiles(LocalDateTime fechaYhora, String inicioTrayecto, String finTrayecto,int edad) {
super(fechaYhora, inicioTrayecto, finTrayecto);
assert(edad>12);
this.edad = edad;
this.fechaYhora = fechaYhora;
this.inicioTrayecto = inicioTrayecto;
this.finTrayecto = finTrayecto;
}
@Override
public String toString() {
return "Hola!, soy el billete infantil y tu tienes" + edad + "años";
}
@Override
public String getInicioTrayecto() {
return inicioTrayecto;
}
@Override
public String getFinTrayecto() {
return finTrayecto;
}
@Override
public LocalDateTime getFechaYHora() {
return fechaYhora;
}
@Override
public double getPrecio() {
return super.getPrecio() * 0.50;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment