목차
1. Use Case Analysis에 따른 구현 결과 화면
2. 토의 - 문제점
3. 소스
2. 토의 - 문제점
3. 소스
본문내용
t MAILBOX_COUNT = 3;
}
Mailbox.java
/**
A mailbox contains messages that can be listed, kept or discarded.
/**
mailbox 클래스를 정의한다.
mailbox는 메세지를 포함한다.
*/
public class Mailbox
{
/**
Mailbox 객체를 생성한다.
*/
public Mailbox()
{
newMessages = new MessageQueue();
keptMessages = new MessageQueue();
}
/**
number를 큐에 넣는다.
이 number는 어떤 폰에서 메세지가 왔는지를 나타내 준다.
*/
public void addMessage(Message aMessage)
{
newMessages.add(aMessage);
}
public void addSendMessage(Message aMessage)
{
keptMessages.add(aMessage);
}
/**
현재 최근 메세지를 가르쳐 준다.
*/
public Message getCurrentMessage()
{
if (newMessages.size() > 0)
return newMessages.getFirst();
else
return null;
}
public Message getKeptMessage()
{
if (keptMessages.size() > 0)
return keptMessages.getFirst();
else
return null;
}
/**
mailbox에 있는 메세지를 삭제한다.
삭제된 메세지를 return해 준다.
*/
public Message removeCurrentMessage()
{
if (newMessages.size() > 0)
return newMessages.removeFirst();
else if (keptMessages.size() > 0)
return keptMessages.removeFirst();
else
return null;
}
/**
현재 메세지를 저장한다.
*/
public void saveCurrentMessage()
{
Message m = getCurrentMessage();
if (m != null)
keptMessages.add(m);
}
private MessageQueue newMessages;
private MessageQueue keptMessages;
}
Message.java
/**
메세지 클래스를 정의한다.
*/
public class Message
{
/**
Message라는 객체를 생성한다.
text는 메세지를 저장하고, number는 폰의 종류를 나타낸다.
*/
public Message(String messageText, int messagePhone)
{
text = messageText;
number = messagePhone;
}
/**
text를 받아서 돌려준다.
*/
public String getText()
{
return text;
}
/**
폰의 종류를 돌려준다.
*/
public int getNumber()
{
return number;
}
private String text;
private int number;
}
MessageQueue.java
import java.util.ArrayList;
/**
메세지 큐 클래스를 정의한다.
각 메세지들이 저장 될 공간을 설정하는 것이다.
*/
public class MessageQueue
{
/**
ArrayList로 메세지 큐를 하나 생성한다.
*/
public MessageQueue()
{
queue = new ArrayList();
}
/**
큐의 가장 위 요소를 제거하고, 그 메세지를 return해 준다.
*/
public Message removeFirst()
{
return (Message) queue.remove(0);
}
/**
큐의 가장 뒤에 메세지를 하나 추가한다.
*/
public void add(Message newMessage)
{
queue.add(newMessage);
}
/**
메세지 큐에 있는 원소들의 갯수를 돌려준다.
*/
public int size()
{
return queue.size();
}
/**
가장 앞에 있는 메세지를 return해 준다.
*/
public Message getFirst()
{
return (Message) queue.get(0);
}
private ArrayList queue;
}
Telephone.java
import java.io.BufferedReader;
import java.io.IOException;
/**
Telephone 클래스는 키보드의 누름에 따른 동작과 그에 따른
폰의 행위에 대하여 정의한다.
*/
public class Telephone
{
/**
phone 객체를 생성한다.
*/
public Telephone(BufferedReader aReader)
{
reader = aReader;
}
/**
메세지를 화면에 출력한다.
*/
public void speak(String output)
{
System.out.println(output);
}
/**
무한루프를 돌면서 어느 곳에서나 키의 입력이 먹히도록 한다.
c는 현재 connection상태에 있음을 의미한다.
*/
public void run(Connection c) throws IOException
{
boolean more = true;
while (more)
{
String input = reader.readLine();
if (input == null) return;
if (input.equalsIgnoreCase(\"H\"))
c.hangup();
else if (input.equalsIgnoreCase(\"Q\"))
more = false;
else if (input.length() == 1
&& \"1234567890*#MFCUD\".indexOf(input) >= 0)
c.dial(input);
else
c.record(input);
}
}
private BufferedReader reader;
}
}
Mailbox.java
/**
A mailbox contains messages that can be listed, kept or discarded.
/**
mailbox 클래스를 정의한다.
mailbox는 메세지를 포함한다.
*/
public class Mailbox
{
/**
Mailbox 객체를 생성한다.
*/
public Mailbox()
{
newMessages = new MessageQueue();
keptMessages = new MessageQueue();
}
/**
number를 큐에 넣는다.
이 number는 어떤 폰에서 메세지가 왔는지를 나타내 준다.
*/
public void addMessage(Message aMessage)
{
newMessages.add(aMessage);
}
public void addSendMessage(Message aMessage)
{
keptMessages.add(aMessage);
}
/**
현재 최근 메세지를 가르쳐 준다.
*/
public Message getCurrentMessage()
{
if (newMessages.size() > 0)
return newMessages.getFirst();
else
return null;
}
public Message getKeptMessage()
{
if (keptMessages.size() > 0)
return keptMessages.getFirst();
else
return null;
}
/**
mailbox에 있는 메세지를 삭제한다.
삭제된 메세지를 return해 준다.
*/
public Message removeCurrentMessage()
{
if (newMessages.size() > 0)
return newMessages.removeFirst();
else if (keptMessages.size() > 0)
return keptMessages.removeFirst();
else
return null;
}
/**
현재 메세지를 저장한다.
*/
public void saveCurrentMessage()
{
Message m = getCurrentMessage();
if (m != null)
keptMessages.add(m);
}
private MessageQueue newMessages;
private MessageQueue keptMessages;
}
Message.java
/**
메세지 클래스를 정의한다.
*/
public class Message
{
/**
Message라는 객체를 생성한다.
text는 메세지를 저장하고, number는 폰의 종류를 나타낸다.
*/
public Message(String messageText, int messagePhone)
{
text = messageText;
number = messagePhone;
}
/**
text를 받아서 돌려준다.
*/
public String getText()
{
return text;
}
/**
폰의 종류를 돌려준다.
*/
public int getNumber()
{
return number;
}
private String text;
private int number;
}
MessageQueue.java
import java.util.ArrayList;
/**
메세지 큐 클래스를 정의한다.
각 메세지들이 저장 될 공간을 설정하는 것이다.
*/
public class MessageQueue
{
/**
ArrayList로 메세지 큐를 하나 생성한다.
*/
public MessageQueue()
{
queue = new ArrayList();
}
/**
큐의 가장 위 요소를 제거하고, 그 메세지를 return해 준다.
*/
public Message removeFirst()
{
return (Message) queue.remove(0);
}
/**
큐의 가장 뒤에 메세지를 하나 추가한다.
*/
public void add(Message newMessage)
{
queue.add(newMessage);
}
/**
메세지 큐에 있는 원소들의 갯수를 돌려준다.
*/
public int size()
{
return queue.size();
}
/**
가장 앞에 있는 메세지를 return해 준다.
*/
public Message getFirst()
{
return (Message) queue.get(0);
}
private ArrayList queue;
}
Telephone.java
import java.io.BufferedReader;
import java.io.IOException;
/**
Telephone 클래스는 키보드의 누름에 따른 동작과 그에 따른
폰의 행위에 대하여 정의한다.
*/
public class Telephone
{
/**
phone 객체를 생성한다.
*/
public Telephone(BufferedReader aReader)
{
reader = aReader;
}
/**
메세지를 화면에 출력한다.
*/
public void speak(String output)
{
System.out.println(output);
}
/**
무한루프를 돌면서 어느 곳에서나 키의 입력이 먹히도록 한다.
c는 현재 connection상태에 있음을 의미한다.
*/
public void run(Connection c) throws IOException
{
boolean more = true;
while (more)
{
String input = reader.readLine();
if (input == null) return;
if (input.equalsIgnoreCase(\"H\"))
c.hangup();
else if (input.equalsIgnoreCase(\"Q\"))
more = false;
else if (input.length() == 1
&& \"1234567890*#MFCUD\".indexOf(input) >= 0)
c.dial(input);
else
c.record(input);
}
}
private BufferedReader reader;
}
추천자료
JWSDP에 대한 고찰
은행개좌구현
RPC(Remote Procedure Call)
ant를 사용한 웹로직 build방법
웹에디터 조사하기
XML을 이용한 공고문 만들기
CORBA객체
구글 크롬(google chrome)의 주요기능, 특징, 전략분석, 소비자선호도, 위협과 기회요인
안드로이드 앱개발 기초 android application
[사회과학] 빅데이터
안드로이드 어플 계발 기획서( 1) 다이어트어플, 2) 관광객 어플
객체 지향 언어의 종류
[기말프로젝트] 키오스크 프로그램(KIOSK) - 객체지향언어와실습최종보고서.hwp + 기말프로젝...
소개글