• 类的封装


    实验七

     

    1实验代码:

    package Students;

    public class Person

        {   

         public String name;

            public String birthday;

            public String province,city;

            public int count;

            public Person(String nam,String birthda,String provinc,String cit,int n)

            {

             name=nam;birthday=birthda;province=provinc;city=cit;count=n;

             

            }

        }

            

       class Student extends Person

            {public String major;

            public int sum1,sum2,sum3;

            public int grade;

            public int number;

            public int score;

            

            Student(String nam,String birthda,String provinc,String cit,int n,String majo,int grad,int scor)

            { super(nam,birthda,provinc,cit,n);

                major=majo;

                grade=grad;

                score=scor;

                String a,b,c;

             a=new String("网络工程");

             b=new String("物联网");

             c=new String("计算机科学与技术");

             

                

             if(major.equals(a))

             {number=grade*10000+01*100+count;

                 }

             if(major.equals(b))

             {number=grade*10000+02*100+count;

                 }

             if(major.equals(c))

             {number=grade*10000+03*100+count;

                 }

             

                }

            public void searchname(String nam)

            { int i=-1;

                i=name.indexOf(nam);

               

             if(i!=-1)

              System.out.println(name);

            };

            public void searchbirthday(String num) 

            {

             int i=-1;

             i=birthday.indexOf(num);

             if(i!=-1)

              System.out.println(name);

            }

            public void searchplace(String place)

            { 

             int i=-1;

             i=province.indexOf(place);

             if(i!=-1)

              System.out.println(name);

             

            }

            

            public int separate()

            {

             String a,b,c;

             

             a=new String("网络工程");

             b=new String("物联网");

             c=new String("计算机科学与技术");

             if(major.equals(a))

             {

              sum1=sum1+score;

              return sum1;

                 }

             if(major.equals(b))

             {sum2=sum2+score;

             return sum2;

                 }

             if(major.equals(c))

             {

              sum3=sum3+score;

              return sum3;

             }

             else return 0;

            }

            

        public static void main(String[] args)

        {

            System.out.println("初始数据:学生1:姓名:张三,生日:1998年11月15日,省份:青海,城市:西宁,专业:物联网,入学年份:2017,成绩:89");

            System.out.println(" 学生2:姓名:李四,生日:1999年01月08日,省份:河南,城市:洛阳,专业:网络工程,入学年份:2017,成绩:97");

            System.out.println(" 学生3:姓名:王二,生日:1998年07月24日,省份:山东,城市:青岛,专业:网络工程,入学年份:2017,成绩:92");

            System.out.println(" 学生4:姓名:赵六,生日:1997年08月30日,省份:陕西,城市:西安,专业:计算机科学与技术,入学年份:2017,成绩:84");

            System.out.print("查找姓‘王’的学生为:");

            Student stud1=new Student("张三","1998年11月15日","青海","西宁",01,"物联网",2017,89);

         Student stud2=new Student("李四","1999年01月08日","河南","洛阳",02,"网络工程",2017,97);

         Student stud3=new Student("王二","1998年07月24日","山东","青岛",03,"网络工程",2017,92);

         Student stud4=new Student("赵六","1997年08月30日","陕西","西安",04,"计算机科学与技术",2017,84);

         stud1.searchname("王");

         stud2.searchname("王");

         stud3.searchname("王");

         stud4.searchname("王");

         System.out.print("查找生日为1999年01月08日的学生为:");

         stud1.searchbirthday("1999年01月08日");

         stud2.searchbirthday("1999年01月08日");

         stud3.searchbirthday("1999年01月08日");

         stud4.searchbirthday("1999年01月08日");

         System.out.print("查找所在地区是陕西的学生为:");

         stud1.searchplace("陕西");

         stud2.searchplace("陕西");

         stud3.searchplace("陕西");

         stud4.searchplace("陕西");

         stud1.separate();

         stud2.separate();

         stud3.separate();

         stud4.separate();

         int add1=0,add2=0,add3=0;

         add1=stud1.sum1+stud2.sum1+stud3.sum1+stud4.sum1;

         add2=stud1.sum2+stud2.sum2+stud3.sum2+stud4.sum2;

         add3=stud1.sum3+stud2.sum3+stud3.sum3+stud4.sum3;

         System.out.println("网络工程班总成绩是:"+add1);

         System.out.println("物联网班总成绩是:"+add2);

         System.out.println("计算机科学与技术班总成绩是:"+add3);

        }

        }

    2.总结

                 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。

    简单的说:就是用基类的引用指向子类的对象我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了代码重用。

    而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性.。如果项目耦合度很高的情况下,维护代码时修改一个地方会牵连到很多地方,会无休止的增加开发成本,降低耦合度可以保证。

    多态条件:多态可以分为动多态和静多态动多态条件:1)继承(父类——子类,基类——派生类)2)方法重写(父子关系,作用域不同、方法名相同、参数列表相同)3)父类引用引用派生类对象(向上造型)静多态条件:1)方法重载(作用域相同、方法名相同、参数列表不同)程序的拓展性。。

     
     
  • 相关阅读:
    js Dom为页面中的元素绑定键盘或鼠标事件
    javascript中DOM获取和设置元素的内容、样式及效果
    第四十一节 固定在顶部的悬停菜单
    第四十节 定位练习
    第三十九节 层级定位
    第三十八节 固定定位
    第三十七节 绝对定位
    第三十六节 相对定位
    第三十五节 定位
    第三十四节 新闻标题练习
  • 原文地址:https://www.cnblogs.com/java-17/p/10846939.html
Copyright © 2020-2023  润新知