Java课程上机实验1_Phone

题目要求:

实现一个表示电话号码(要求带有区号和号码,如010-68911205)的Phone
类,其中某个构造函数的参数应为表示电话号码的字符串。要求实现相应的set
和get 函数来分别设置及获取电话号码中的区号(area,如010)和号码(number,
如68911205),重写Object.toString( )函数打印出整个电话号码。(提示:可使用
String.indexOf( )和String.substring( )等函数)

 

设计思路:

  在Phone类中,使用两个String对象分别存储号码与区号,在构造方法中,将格式为 区号-号码 的电话号码分割为两段,使用Object.indexOf()方法获取"-"的位置,然后用Object.substring()方法分别得到"-"位置前后的字符串,存入号码和区号中。

  区号和号码均有各自的 get 和 set 方法。

  重写Object.toString()方法,使其返回新的按照 区号-号码 格式的字符串的引用,以获得整个电话号码字符串的引用。

  在main方法中,创建一个Phone类的引用 newPhone , 使用System.out.println() 打印使用 newPhone的get方法得到的区号和号码,然后使用set方法修改它们,再次打印。然后对新创建的Phone类直接打印,以测试重写的Object.toString()方法是否能打印出整个电话号码。

 

程序输出:

010
12345678
000
999
123-567

 

实现代码:

package homework;

public class Phonenum {
    public static void main( String[] args ){
        Phone newPhone = new Phone( "010-12345678" );
        System.out.println( newPhone.getArea() );
        System.out.println( newPhone.getNumber() );
        newPhone.setArea("000");
        newPhone.setNumber("999");
        System.out.println( newPhone.getArea() );
        System.out.println( newPhone.getNumber() );
        System.out.println( new Phone( "123-567" ) );
        
    }
}
class Phone{
    private String number;
    private String area;
    
    public Phone( String destNum ){
        int breakPoint = destNum.indexOf("-");
        area = destNum.substring( 0 ,  breakPoint );
        number = destNum.substring( breakPoint + 1, destNum.length() );
    }
    
    public String getNumber() {
        return number;
    }
    
    public void setNumber(String number) {
        this.number = number;
    }
    
    public String getArea() {
        return area;
    }
    
    public void setArea(String area) {
        this.area = area;
    }
    
    public String toString( ){
        return this.area + "-" + this.number;
    }
}

 

posted @ 2013-05-19 21:52  等待电子的砹  阅读(741)  评论(0编辑  收藏  举报