java 语言程序设计-李尊朝 第6章 类和对象 典型习题

典型例题 6-3

                  设计一个活期存折类,其中包括成员变量name、indentity、address、balance、datae、hasPassword 、password

                   使用活期存折类创建对象,为zhangl办理一个活期存折,其成员变量的值分别为zhangsan(姓名)\1234567890(编号)\西安兴园10号(家挺地埴)\1000存款额\当天日期(办理日期)\true(是否要密码)\123456(

                   

import java.util.*;
public class Bankbook
 {
	String name;
 	long identity;
	String address;
	int balance;
	Date date;
	boolean hasPassword;
	long password;
	Bankbook(String str1,long i,String str2,int m,Date d,boolean y,long p)
	 {
		name=str1;
		identity=i;
		address=str2;
		balance=m;
		date=d;
		hasPassword=y;
		password=p;
	 }
	public void show()  //显示存折信息
	 {
		System.out.println("基本信息");
		System.out.println(name+" "+identity+" "+address);
		System.out.println(balance+" "+date+" "+hasPassword+" "+password);
	 }
	public static void main(String args[])
	 {
		Bankbook zhangsan=new Bankbook("zhangsan",1234567890,"西安市兴庆路10号",
		                  1000,new Date(),true,123456);
		zhangsan.show();
	 }
}

   例6-4      定义一个birth类,其成员变量有:year(年)、month(月)、day(日)。其无参构造方法将成员变量初始化成:year=100,moth=1,day=1(对应日期有为2000年1月1日);有参构造方法对成员变量进行合理初始化。

                创建brith对象,通过构造方法初始化成员变量,输出成员变量值 及年龄

  例6-4      定义一个birth类,其成员变量有:year(年)、month(月)、day(日)。其无参构造方法将成员变量初始化成:year=100,moth=1,day=1(对应日期有为2000年1月1日);有参构造方法对成员变量进行合理初始化。

                创建brith对象,通过构造方法初始化成员变量,输出成员变量值 及年龄

import java.util.Date;
class Birth
 {
    private int year;
    private int month;  
       private int day;    
       public Birth()
        {
           year=100; month=1; day=1;  //日期为2000年1月1日
        }
       public Birth( int y, int m, int d )
         {
        year=y; 
        if(m>0&&m<=12)
            month=m;             //将m的值赋给成员变量month
          else
           {
              month = 1;          //如果m的值有误,将成员变量month的值设置为1
         }
           
          day=checkDay(m,d);    
                               //对d值进行检测 
    }
       private int checkDay(int m,int d)
         {
          int DaysOfMonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        if (d>0&&d==DaysOfMonth[m])
             return d;
        else
         {
            return 1;  
         }
        }
       public String toString()
        {
       return year+1900+"年/"+month+"月/"+day+"日"; 
     }
       public static void main(String args[])
        {
           int age;
           Birth zhang=new Birth(94,02,17);
           System.out.println(" Zhang's birth is "+zhang.toString());
           Date today=new Date();
           age=today.getYear()-zhang.year;   //Date是系统定义的日期类,通过它可以获得系统的当前日期,方法getYear()的功能是取得Date对象的年份值。
           System.out.println(" Zhang is "+age+" years old ");
      }
}   

运行结果:

zhang’s birth is 1994年2月17日

zhang is 13 years old

 

运行结果:

zhang’s birth is 1994年2月17日

zhang is 13 years old

例6_5  请指出下面程序中类成员变量与实例变的不同之处

class StaticTest
{
   public int x=1;
   public static int y=1;
}
public class dxlt_6_5 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i;
        StaticTset.y=StaticTest.y+1;
        StaticTest m=new StaticTest();
        StaticTest n=new StaticTest();
        m.x=m.x+3;
        m.y=m.y+1;
        n.x=n.x+5;
        n.y=n.y+5;
        System.out.println("m.x"+m.x+"m.y="+m.y);
        System.out.println("m.x"+m.x+"m.y="+m.y);
    }

}

 

运行结果:

m.x=4 m.y=10

n.x=6  n.y=10

posted @ 2012-12-15 09:47  elite_2012  阅读(446)  评论(0编辑  收藏  举报