实验目的与要求:
1.理解static的作用和使用方法。
2.理解类的封装。
3.理解类的多态。
实验内容与操作:
1.写出程序运行结果,如有错误,指出原因并改正
class Static Demo{
static int x;
int y;
static{
x=10;
}
public static int getX(){
return x;
}
public static void setX(int newX){
x=newX;
}
public int getY(){
return y;
}
public void setY(int newY){
y=newY;
}
}
public static void main(String[] args){
System.out.println("静态变量x="+StaticDemo.getX());
System.out.println("实例变量y="+StaticDemo.getY());
StaticDemo a=new StaticDemo();
StaticDemo b=new StaticDemo();
a.setX(1);
a.setY(2);
b.setX(3);
b.setY(4);
System.out.println("静态变量a.x="+a.getX());
System.out.println("实例变量a.y="+a.getY());
System.out.println("静态变量b.x="+b.getX());
System.out.println("实例变量b.y="+b.getY());
}
}
2.封装
class Student //创建学生类
{
private String name;//不能直接访问
private int age;
Teacher ter;
Student(String name,int age,Teacher ter){
this.name=name;
this.age=age;
this.ter=ter;
}
public int getAge(){ //通过公共方法访问到了私有数据成员age
return age;
}
public void setAge(int age){
this.age=age;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
}
class Teacher//创建教师类
{
private String name;
private int age;
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;
}
}
class Demo //创建示范类Demo,主要用于做测试,在此类中放置main方法
{
public static void main(String[] args)
{
Teacher t1=new Teacher(); //创建老师对象t1
t1.setAge(50); //对象名.方法名修改了私有的数据成员age为50
t1.setName("wanggy"); //对象名.方法名修改了私有的数据成员name为wanggy
Student s1=new Student("chenggang",20,t1);
System.out.println(s1.getName()+"'s tercher is"+s1.ter.getName());
System.out.println(s1.getName()+"is"+s1.getAge()+","+t1.getName()+"is"+t1.getAge());
}
}
3.多态
class Car{
void speed(){
System.out.println("不知道是哪种速度");
}
}
class Ford extends Car{
void speed(){
System.out.println("该车的速度在200公里/小时内");
}
}
class Benz extends Car{
void speed(){
System.out.println("该车的速度在300-400公里/小时");
}
}
class Demo{
public static void main(String[] args){
Car c=new Ford();
c.speed();
c=new Benz();
c.speed();
}
}
实验结果:
静态变量 x=10
实例变量 y=0
静态变量 a.x=3
实例变量 a.y=4
静态变量 b.x=3
实例变量 a.y=4