Java static的使用和类的封装,多态

实验目的与要求:
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值