欢迎来到天天文库
浏览记录
ID:27740345
大小:308.51 KB
页数:72页
时间:2018-12-04
《面向对象的编程技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章面向对象的编程技术主讲:胡伏湘回顾与复习问题:问题空间元素在方法空间中的表示称为(),也称为()instance),它是现实世界的实体或概念在计算机逻辑中的抽象表示。面向对象的程序设计简称()是以要解决的问题中所涉及到的各种对象为主要考虑因素。3.1类3.1.1面向对象的概念把问题看成是相互作用的事物的集合,用(1)描述事物,对事物的操作叫做(2),事物称为对象,(2)称为数据,对象是(1)与(2)的集合。OOP主要技术包括(3)、继承、多态、(4)。对多个事物所共同的属性组成的集合叫做(5)。3.1类3.1.1面向对象的概念把问题看成是相互作用的事物的
2、集合,用属性描述事物,对事物的操作叫做方法,事物称为对象,属性称为数据,对象是数据与方法的集合。OOP主要技术包括封装、继承、多态、覆盖。对多个事物所共同的属性组成的集合叫做类,对象是类的实例(instance)。3.1类3·1·2类的定义修饰符class类名[extends父类名][implements接口名]{类型成员变量;……修饰符类型成员方法(参数列表){类型局部变量;方法体;……}}3.1类例如:定义一个类“工人”并实例化。publicclassEmployeeTest{publicstaticvoidmain(String[]args){//将三个
3、员工对象的数据赋给职工数组Employee[]staff=newEmployee[3];staff[0]=newEmployee("张三",75000,1987,12,15);staff[1]=newEmployee("李四",50000,1989,10,1);staff[2]=newEmployee("王五",40000,1990,3,15);for(inti=0;i4、mployeee=staff[i];System.out.println("姓名="+e.getName()+",工资="+e.getSalary()+",工作日期="+e.getHireDay());}}}3.1类例如:定义一个类“工人”并实例化。classEmployee{publicEmployee(Stringn,doubles,intyear,intmonth,intday){name=n;salary=s;GregorianCalendarcalendar=newGregorianCalendar(year,month-1,day);//Grego5、rianCalendar计算月份从0开始hireDay=calendar.getTime();}3.1类例如:定义一个类并实例化。publicStringgetName(){returnname;}publicdoublegetSalary(){returnsalary;}publicDategetHireDay(){returnhireDay;}publicvoidraiseSalary(doublebyPercent){doubleraise=salary*byPercent/100;salary+=raise;}privateStringname;pri6、vatedoublesalary;privateDatehireDay;}3.1类3.1.3类的修饰1.访问控制符public:公共类,说明这是一个公共类,可以被其它任何类引用和调用不写访问控制符,表示类只能被本包的其它类访问2.抽象类abstract3.1类3.1.3类的修饰2.抽象类abstract以abstract作为关键字,如果有的话,应该放在访问控制符后面,表示这个类是个抽象类。抽象类不能直接产生实例化一个对象,它只能被继承。例如:Number类在JDK文档中定义为:java.lang.NumberAllImplementedInterfaces:S7、erializable3.1类3.1.3类的修饰2.抽象类abstract抽象类就是没有具体实例化对象的类。优点:抽象类是所有它的子类的公共属性的集合,可以利用充分利用这些公共属性提高程序开发和维护的效率。特征:至少含有一个抽象方法3.1类2.抽象类abstract例:abstractclassVehicle{abstractlonggetDistance(intday);DatepurchaseDate;}使用方法:继承后重新定义classPlaneextendsVehicle{purchaseDate=newDate();longgetDistance(i8、ntday){If(day>100)r
4、mployeee=staff[i];System.out.println("姓名="+e.getName()+",工资="+e.getSalary()+",工作日期="+e.getHireDay());}}}3.1类例如:定义一个类“工人”并实例化。classEmployee{publicEmployee(Stringn,doubles,intyear,intmonth,intday){name=n;salary=s;GregorianCalendarcalendar=newGregorianCalendar(year,month-1,day);//Grego
5、rianCalendar计算月份从0开始hireDay=calendar.getTime();}3.1类例如:定义一个类并实例化。publicStringgetName(){returnname;}publicdoublegetSalary(){returnsalary;}publicDategetHireDay(){returnhireDay;}publicvoidraiseSalary(doublebyPercent){doubleraise=salary*byPercent/100;salary+=raise;}privateStringname;pri
6、vatedoublesalary;privateDatehireDay;}3.1类3.1.3类的修饰1.访问控制符public:公共类,说明这是一个公共类,可以被其它任何类引用和调用不写访问控制符,表示类只能被本包的其它类访问2.抽象类abstract3.1类3.1.3类的修饰2.抽象类abstract以abstract作为关键字,如果有的话,应该放在访问控制符后面,表示这个类是个抽象类。抽象类不能直接产生实例化一个对象,它只能被继承。例如:Number类在JDK文档中定义为:java.lang.NumberAllImplementedInterfaces:S
7、erializable3.1类3.1.3类的修饰2.抽象类abstract抽象类就是没有具体实例化对象的类。优点:抽象类是所有它的子类的公共属性的集合,可以利用充分利用这些公共属性提高程序开发和维护的效率。特征:至少含有一个抽象方法3.1类2.抽象类abstract例:abstractclassVehicle{abstractlonggetDistance(intday);DatepurchaseDate;}使用方法:继承后重新定义classPlaneextendsVehicle{purchaseDate=newDate();longgetDistance(i
8、ntday){If(day>100)r
此文档下载收益归作者所有