实验四、类的封装
一、实验目的
1. 掌握类的声明和定义;
2. 理解有静态成员和非静态成员变量的区别;
3. 理解基本参数和引用参数的区别;
4. 掌握类构造方法的编写;
5. 实现类的方法;             
6. 掌握创建类实例的方法;
7. 学会定义和使用具有重载方法的继承类;
8. 掌握方法的重新定义。
二、实验内容
1以下程序运行的结果是。
运行结果
初始时 x=10, y=10
方法调用中 x=100, y=100
方法调用后 x=100, y=100
public class sy4_1 {
    public static void main(String[] args) {
          Power p=new Power();
          p.ff2(10,10);
          System.out.println("方法调用后 x="+p.x+", y="+p.y);
    }
}
class Power{
    int x=10, y=10;
    void ff2(int passX, int passY){
        System.out.println("初始时 x="+x+", y="+y);
        x=passX*passX;
        y=passY*passY;
        System.out.println("方法调用中 x="+x+", y="+y);
    }
}
2.建立日期类及日期对象的简单引用,程序结构如下,写出完整代码。
public class MyDate0                      //声明日期类
{  int year, month, day;                  //成员变量
    void set(int y, int m, int d)  { ... }        //成员方法,设置日期
public String toString()  { … }        //成员方法返回中文日期
public static void main(String args[])      // 主方法
{
  ….              //创建日期对象 d1
      ….              //显示 d1 的中文日期
      ….              //设置 d1 的成员变量为今天日期
      ….              //显示设置后 d1 的中文日期
    }  // end main
}      // end class
//代码如下:
package ;
public class MyDate {
    int year,month,day;
    void  setDate(int y,int m,int d)
    {
        this.year=y;
        this.month=m;
        this.day=d;
    }
    public String toString()
    {
        return (this.year+""+this.month+""+this.day+"");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyDate d1=new MyDate();
        System.out.String());
        d1.setDate(2014, 9, 17);
        System.out.String());   
    }
}
3.创建学生类Student来完成下面问题。
1)创建类Student,包括属性学号no、姓名name和年龄age,且都是private类型;
2)声明一个构造方法,以初始化对象的所有的域;
3)声明获得各属性(学号、姓名和年龄)的各个方法;
4)声明设置各属性(学号、姓名和年龄)的各个方法;
5)声明一个public型的toString方法,将该类所有域信息组合成一个字符串;
6)声明统计创建Student对象的个数的成员变量count和得到Student对象的个数的方法。
在主类中使用Student类创建两个Student对象,输出对象所有域信息;修改其姓名和年龄,并显示。
//代码如下:
package ;
public class Demo4 {
    /**
    * @param args
    */
    public staticjava类的概念 void main(String[] args) {
        // TODO Auto-generated method stub
        Student s1=new Student();
        Student s2=new Student();
        System.out.println("对象个数:"+Student.count);
        s1.setAge(16);
        s1.setName("小米");
        s1.setNo(20145);
        s2.setAge(17);
        s2.setName("S");
        s2.setNo(20144);
        System.out.String());
        System.out.String());
       
       
    }
}
class Student
{
    private int no;
    private String name;
    private int age;
    static int count;
    public Student()
    {
        count++;
    }
    public int getNo() {
        return no;
    }
    public void setNo(int no) {
        this.no = no;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String toString()
    {
        return ("学号: "+this.no+姓名: "+this.name+年龄: "+this.age);
    }
   
   
}
4. 定义一个类实现银行账户的概念。包括的属性有“账号”、“储户姓名”、“开户时间”和“存款余额”等信息,包括的方法有“存款”、“取款”、“查询余额”和“显示账号信息”。编写一测试类,创建两个不同的账户类的对象,并分别完成存款、取款、查询余额、显示账号等操作。
public class C_s {
    /**
    * @param args
    */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        YHZH y1=new YHZH();
        y1.setName("张三");
        y1.setNO("602548945656564477656");
        y1.setLeftMoney(2000.51);
        y1.setTime("2014-5-14");
       
        y1.CX();
        y1.Ck(500);
        y1.Qk(200);
        System.out.String());
    }
}
class  YHZH
{
    private String NO;
    private String name;
    private double leftMoney;
    private String time;
   
    public String getNO() {
        return NO;
    }
    public void setNO(String nO) {
        NO = nO;
    }
    public String getName() {

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。