Hola chicos requiero de su oracional con una guía para finalizar:
En lo siguiente se muestra la información lo mas clara posible para identificar con la facilidad el requerimiento que solicito.
Clase Directorio
package com.cmc.entidades;
import java.util.ArrayList;
import java.util.Date;
public class Directorio {
// Atributos
private ArrayList<Contacto> contactos;
private Date fechaModifacion;
// Metodos
public boolean agregarContacto(Contacto contacto) {
contactos.add(contacto);
return true;
}
public Contacto buscarPorCedula(String cedula) {
Contacto result = null;
Contacto contact = null;
for (int i = 0; i < contactos.size(); i++) {
contact = contactos.get(i);
if (cedula.equals(contact.getCedula())) {
result = contact;
}
}
return result;
}
public int contarPerdidos() {
int contar = 0;
Contacto contact = null;
for (int i = 0; i < contactos.size(); i++) {
contact = contactos.get(i);
if (contact.getDireccion() == null) {
contar++;
}
}
return contar;
}
public int contarFijos() {
int contar = 0;
Contacto contact = null;
for (int i = 0; i < contactos.size(); i++) {
contact = contactos.get(i);
if (contact.equals(contactos.equals("c"))) {
contar++;
}
}
return contar;
}
// Constructor
public Directorio() {
super();
contactos = new ArrayList<Contacto>();
}
// Getters && Setters
public ArrayList<Contacto> getContactos() {
return contactos;
}
public void setContactos(ArrayList<Contacto> contactos) {
this.contactos = contactos;
}
public Date getFechaModifacion() {
return fechaModifacion;
}
public void setFechaModifacion(Date fechaModifacion) {
this.fechaModifacion = fechaModifacion;
}
}
Clase Contacto
package com.cmc.entidades;
import java.util.ArrayList;
public class Contacto {
// Atributos
private String cedula;
private String nombre;
private String apellido;
private Direccion direccion;
private ArrayList<Telefono> telefonos;
// Metodos
public void agregarTelefono(Telefono telefono) {
telefonos.add(telefono);
}
public void mostrarTelefonos() {
Telefono telf = null;
for (int i = 0; i < telefonos.size(); i++) {
telf = telefonos.get(i);
if (telf.getEstado().equals("C")) {
System.out.println(telf.getTipo() + " - " + telf.getNombre());
}
}
}
public ArrayList<Telefono> recuperarIncorrectos() {
ArrayList<Telefono> resultado = new ArrayList<Telefono>();
Telefono telf = null;
for (int i = 0; i < telefonos.size(); i++) {
telf = telefonos.get(i);
if (telf.getEstado().equals("E")) {
resultado.add(telf);
}
}
return resultado;
}
// Constructor
public Contacto(String cedula, String nombre, String apellido) {
super();
telefonos = new ArrayList<Telefono>();
this.cedula = cedula;
this.nombre = nombre;
this.apellido = apellido;
}
public void imprimir() {
System.out.println("****" + nombre + " " + apellido + "*******");
if (this.getDireccion() != null) {
System.out.println(
"Direccion: " + this.direccion.getCallePrincipal() + " y " +
this.direccion.getCalleSecundaria());
} else {
System.out.println("No tienne asociada una direccion");
}
}
// Getters && Setters
public String getCedula() {
return cedula;
}
public void setCedula(String cedula) {
this.cedula = cedula;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public Direccion getDireccion() {
return direccion;
}
public void setDireccion(Direccion direccion) {
this.direccion = direccion;
}
public ArrayList<Telefono> getTelefonos() {
return telefonos;
}
public void setTelefonos(ArrayList<Telefono> telefonos) {
this.telefonos = telefonos;
}
}
Clase Main
package com.cmc.test;
import com.cmc.entidades.Contacto;
import com.cmc.entidades.Direccion;
import com.cmc.entidades.Directorio;
import com.cmc.entidades.Telefono;
public class TestContarFijos {
public static void main(String() args) {
Directorio directorio = new Directorio();
Contacto c1=new Contacto("1234","Armando","Broncas");
c1.setDireccion(new Direccion("ABC", "XYZ"));
c1.agregarTelefono(new Telefono("0992920306","Movil"));
c1.agregarTelefono(new Telefono("1234561","Convencional"));
Contacto c2=new Contacto("234","Mark","Anthony");
c2.setDireccion(new Direccion("ABC", "XYZ"));
directorio.agregarContacto(c2);
c2.agregarTelefono(new Telefono("099292030","Movil"));
c2.agregarTelefono(new Telefono("1234560","CONVENCIONAL"));
Contacto c3=new Contacto("9897","Nicolas","Mora");
c3.setDireccion(new Direccion("ABC", "XYZ"));
directorio.agregarContacto(c2);
c3.agregarTelefono(new Telefono("5432231","Fijo"));
c3.agregarTelefono(new Telefono("0992920307","Movil"));
directorio.agregarContacto(c1);
directorio.agregarContacto(c2);
directorio.agregarContacto(c3);
System.out.println("Fijos:"+directorio.contarFijos());
}
}
El resultado que me brinda es:
El resultado que debe ser:
*IMPORTANTE: No se puede modificar la clase Main
El ejercicio es :
En directorio agregar un método contarFijos que retorna cuantos contactos tienen teléfonos convencional y ademas están en estado C.
MI duda es como yo llamo a la clase telefono desde contactos para poder hacer la condicional??*