实验四、类的封装
一、实验目的
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小时内删除。
发表评论