java类的封装实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四、类的封装
一、实验目的
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 com.text;
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.println(d1.toString());
d1.setDate(2014, 9, 17);
System.out.println(d1.toString());
}
}
3.创建学生类Student来完成下面问题。
(1)创建类Student,包括属性学号no、姓名name和年龄age,且都是private类型;
(2)声明一个构造方法,以初始化对象的所有的域;
(3)声明获得各属性(学号、姓名和年龄)的各个方法;
(4)声明设置各属性(学号、姓名和年龄)的各个方法;
(5)声明一个public型的toString方法,将该类所有域信息组合成一个字符串;
(6)声明统计创建Student对象的个数的成员变量count和得到Student对象的个数的方法。
在主类中使用Student类创建两个Student对象,输出对象所有域信息;修改其姓名和年龄,并显示。
//代码如下:
package com.text;
public class Demo4 {
/**
*@param args
public static 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.println(s1.toString());
System.out.println(s2.toString());
}
}
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) {
= name;
}
public int getAge() {
return age;