Need help JAVA programming!

ngereja's Avatar, Join Date: Oct 2007
Newbie Member
Hi, i am learning java and have problem, can anyone help to solve. I have done most of the codes but i fail to remove arrors. The codes are in 8 Classes. The problem is with the class ContactExtended and Main which links other classes all together.

1. Class Company:
Code:
package phonebookoscar;

public class Company implements Item {
	private String name;
	private String phone;
	private String address;
	private String email;
	private int age;
	
	public Company() {
		
	}
	
	public Company(String name, String phone, String address, String email, int age) {
		this.name = name;
		this.phone = phone;
		this.address = address;
		this.email = email;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public String getPhone() {
		return phone;
	}
	public String getAddress(){
		return address;
	}
	public String getEmail(){
		return email;
	}
	public int getAge(){
		return age;
	}

	public String getSurname() {
		return "";
}
2. Class ContactExtended
Code:
package phonebookoscar;

public class ContactExtended extends Contact implements ExtendedItem{
	private String email = null;
	private int age = 0;
	
	public ContactExtended() {
		super();
	}
	
	public ContactExtended(String name, String surname, String phone, int age, String email){
		super(name, surname, phone);
			this.email = email;
			this.age = age;
	}
	
}
3. Class Item

Code:
Package phonebookoscar;

public interface Item {
	public String getName();
	public String getSurname();
	public String getPhone();
	
	
}
4. Class Contact
Code:
Package phonebookoscar;

public class Contact implements Item {
	private String name = null;
	private String surname = null;
	private String phone = null;
	private String address = null;
	private String email = null;
	private int age = 0;

	public Contact() {};

public Contact(String name, String surname, String phone, String address, String email, int age) {
		this.name = name;
		this.surname = surname;
		this.phone = phone;
		this.address = address;
		this.email = email;
		this.age = age;
	}

	public String getName() {
		return name;
			}
	
		public void setName(String name) {
			this.name = name;
		}

			public String getSurname() {
				return surname;
			}
	
				public void setSurname(String surname) {
					this.surname = surname;
				}

					public String getPhone() {
						return phone;
					}
	
						public void setPhone(String phone) {
							this.phone = phone;
						}
							public String getAddress(){
								return address;
							}
								public void setAddress(String address){
									this.address = address;
							}
									public String getEmail(){
										return email;
 									}
										public void setEmail(String email){
											this.email = email;
											}
												public int getAge(){
													return age;
												}
									public void setAge(int age){
											this.age = age;
													}
													
										}
5. Class ExtendedItem

Code:
package phonebookoscar;

public interface ExtendedItem extends Item{
	public String getAddress();
	public String getEmail();
	public int getAge();
}
6. Class Keyboard

Code:
Package phonebookoscar;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Keyboard {
	private static final BufferedReader keyboard =
		new BufferedReader(new InputStreamReader(System.in));
	
	public static String readString() {
		String line = null;
		
		try {
			line = keyboard.readLine();
		}
		catch(IOException e) {
			show("Error reading a string of characters.");
		}
		
		return line;
	}
	
	public static int readInteger() {
		int integer = 0;
		String line = readString();
		
		if(line != null) integer = Integer.parseInt(line);
		
		return integer;
	}
	
	public static float readFloat() {
		float real = 0.0f;
		String line = readString();
		
		if(line != null) real = Float.parseFloat(line);
			
		return real;
	}
	
	public static double readDouble() {
		double real = 0.0;
		String line = readString();
		
		if(line != null) real = Double.parseDouble(line);
			
		return real;
	}
	
	private static void show(String line) {
		System.err.println(line);
	}
}
7. Class PhoneBook
Code:
package phonebookoscar;

public class PhoneBook {
	private static final int SIZE = 100;
	private int nContacts = 0;
	private Item contacts[] = new Item[SIZE];

	public PhoneBook() {}

	public Item getContactAt(int position) {
		Item contact = new Contact();
		if(position >= 0 && position < nContacts)
			contact = contacts[position];
		return contact;
	}

	public int getNContacts() {
		return nContacts;
	}

	public Item searchForName(String name) {
		Item contact = null;
		int position = 0;
		while((contact == null) && position < nContacts) {
			if(contacts[position].getName().equals(name))
				contact = contacts[position];
			else position++;
		}
		if(contact == null) contact = new Contact();
		return contact;
	}

	public void addContact(Item contact) {
		if(nContacts < SIZE)
			contacts[nContacts++] = contact;
	}
}
8. Class Main
Code:
package phonebookoscar;

public class Main {
	private static final int EXIT = 0;
	private static final int ADD = 1;
	private static final int LIST = 2;
	private static final int SEARCH = 3;
	private static final int ADD_NEW_COMPANY = 4;
	private static final int SEARCH_ADDRESS = 5;
	private static final int SEARCH_EMAIL = 6;
	private static final int SEARCH_AGE = 7;
	private PhoneBook phoneBook = new PhoneBook();
	
	public void menu() {
		System.out.println("");
		System.out.println("1. Add a new contact to the phone book.");
		System.out.println("2. List all contacts in the phone book.");
		System.out.println("3. Search a contact for name.");
		System.out.println("4. Add a new company");
		System.out.println("5. Searh a contact for address.");
		System.out.println("6. Search a contact for email.");
		System.out.println("7. Seach a contact for age.");
		System.out.println("0. Exit.");
		System.out.print("Choose an option:");
	}
	
	public void doAdd() {
		System.out.print("Name: ");
		String name = Keyboard.readString();
		System.out.print("Surname: ");
		String surname = Keyboard.readString();
		System.out.print("Phone number: ");
		String phone = Keyboard.readString();
		System.out.print("Address:");
		String address = Keyboard.readString();
		System.out.print("Email:");
		String email = Keyboard.readString();
		System.out.print("Age:");
		String age = Keyboard.readString();
		phoneBook.addContact(new Contact(name, surname, phone,address,email,age));
	}
	
	public void doAddNewCompany() {
		System.out.print("Name: ");
		String name = Keyboard.readString();
		System.out.print("Phone number: ");
		String phone = Keyboard.readString();
		System.out.print("Address");
		String address = Keyboard.readString();
		System.out.print("Email");
		String email = Keyboard.readString();
		System.out.print("Age");
		String age = Keyboard.readString();
		
		phoneBook.addContact(new Company(name, phone, address, email, age));
	}
	
	public void doList() {
		int nContacts = phoneBook.getNContacts();
		Item contact;
		for(int i = 0; i < nContacts; i++) {
			contact = phoneBook.getContactAt(i);
			System.out.println("Name: " + contact.getName());
			System.out.println("Surname: " + contact.getSurname());
			System.out.println("Phone: " + contact.getPhone());
			System.out.println("Address: " + contact.getAddress());
			System.out.println("Email: " + contact.getEmail());
			System.out.println("Age: " + contact.getAge());
			
		}
	}
	
	public void doSearch() {
		System.out.print("Name to search for: ");
		String name = Keyboard.readString();
		Item contact = phoneBook.searchForName(name);
		System.out.println("Name: " + contact.getName());
		System.out.println("Surname: " + contact.getSurname());
		System.out.println("Phone: " + contact.getPhone());
		System.out.println("Address: " + contact.getAddress());
		System.out.println("Email: " + contact.getEmail());
		System.out.println("Age: " + contact.getAge());
	}
	
	public void doAction(int action) {
		switch(action) {
		case ADD :
			doAdd();
			break;
		case LIST :
			doList();
			break;
		case SEARCH :
			doSearch();
			break;
		case ADD_NEW_COMPANY:
			doAddNewCompany();
			break;
		case EXIT :
			System.out.println("Bye!!");
			break;
		default :
			System.out.println("The option is not valid.");
			break;
		}
	}
	
	public void go() {
		int option;
		do {
			menu();
			option = Keyboard.readInteger();
			doAction(option);
		}while(option != EXIT);
	}
	
	public static void main(String args[]) {
		Main main = new Main();
		main.go();
	}
}

Last edited by shabbir; 24Oct2007 at 09:37.. Reason: Code block
rizwan6feb's Avatar, Join Date: Oct 2007
Newbie Member
What is the problem?
ngereja's Avatar, Join Date: Oct 2007
Newbie Member
the problem is to link the rest of classes with the Main Class. i get stack here!