




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java面向对象程序设计讲解面向对象程序设计思想。一、 何为对象,何为类?二、 对象的创建和使用。三、 命名规则四、 构造方法五、 方法的重载六、 this关键字七、 static关键字八、 类的继承九、 方法的重写十、 super关键字十一、 多态机制十二、 抽象类十三、 final关键字十四、 接口(interface) 面向对象的程序设计思想:例如五子棋,面向过程的设计思路就是首先分析问题的步骤1、 开始游戏 2、黑子先走 3、绘制画面 4、判断输赢 5、轮到白子走 6 绘制画面 7、判断输赢 8、返回到第2步 9、输出最后结果再把上面每个步骤分别用c中的函数来实现,问题就解决了。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:1、 黑白双方,这两方行为时一模一样的2、棋盘系统-负责绘制图画3、规则系统-负责判断,如是否犯规、输赢等。第一类对象(玩家对象)负责用户的输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定! 一、什么事对象?什么又是类?我们周围的世界可以看成是由各式各样的对象组成。例如在学校中中有学生、教师、教室、课程、班级这个组成元素都是对象。然而现实世界中的对象很多很多,比如说学校里有好多个学生,每个学生都是一个对象。而类就是具有共性的一类对象!如某个学生就是学生类中的对象!二、类和对象的创建和使用1使用class来创建一个类2使用new来创建一个对象3使用 (对象名).(方法名字)来调用对象的方法4使用 (对象名).(属性名字)来访问对象的属性举例 说明 Person.javapublic class Person /使用class来创建一个类String name; /定义一个字符串变量int age; /定义个整形变量void walk() /定义一个方法System.out.println(正在走路。);public static void main(String args)Person p = new Person(); /使用new来创建一个对象 = 志超; /对象名.变量名 来调用类的属性!p.age = 21;System.out.println(name: + + n +age: + p.age ); /打印语句p.walk(); / 对象名.变量名 来调用类中的方法! 三、命名规则1类的首字母大写 2、变量名和方法名字的首字母小写 3、使用驼峰标示例如上一个例子当中 public class Person 的Person 首字母就大写了。而方法和变量名首字母就用小写。 四、构造方法1使用new + 构造方法创建一个对象 (1)构造方法的名字和类的名字一致,并且没有任何返回值。 (2)当你创建一个class的时候,java编译器会自动给你创建一个无参数的构造方法 (3)一旦你要定义了构造方法,系统将不会在给你添加新的构造方法class Person String name;/定义一个String类型的变量int age; /定义一个int类型的变量Person() /这是一个空的构造函数 void walk() /定义walk方法System.out.println(正在走路.);五、方法的重载方法名相同但是参数不同的方法称为方法的重载用途:当需要计算的参数不同,但是调用的方法名相同的时候,就用到了方法的重载。比如计算一个数的立方,这个数可以是int类型,也可以是double类型,那么在设计方法的时候就需要设计两个方法,但是两个方法又都是计算一个数的立方。为了使方法调用着方便,我就在这就定义两个方法名字相同,参数和返回值不同的方法。这就形成了方法的重载。重载的方法可以有多个。举例子:MethodOverloading.java /* 一个应用程序,用来演示方法的重载 */* MethodOverloading类,在该类中定义cube方法,该方法被重载 */public class MethodOverloading /* 计算一个长整数的立方 */int cube(long l) /这个int cube( )方法和下面 的 double cube( )构成重载return l*l*l;/* 计算一个双精度数的立方 */double cube(double d) return d*d*d;/* 定义main方法 */public static void main(String args)MethodOverloading obj=new MethodOverloading();/创建一个MethodOverloading类的对象System.out.println(the cube of 5 is +obj.cube(5); /输出5的立方System.out.println(the cube of 0.9 is +obj.cube(0.9);/ 0.9的立方六、this关键字this指当前对象的引用,有时候解决方法中成员变量和参数重名的的情况 public class PersonString name;/定义一个String类型的变量int age; /定义一个int类型的变量Person() /这是一个空的构造函数Person(String name,int age) /这是一个带参数的构造函数。且两个构造函数形成了重载 = name; /this 指代的就是当前的Person对象this.age = age; /使用this关键字标识成员变量,以区别于同名参数。七、static关键字1、在类中使用static声明的成员变量为静态成员变量,static成员变量只有一份。它不同于其他的变量,每new一个对象出来就会有一份,而static声明的变量无论new多少个对象出 都只有一份2、静态成员变量用(类名).(变量名)来访问,因此静态成员变量也可以称为类变量八、类的继承Java中使用extends 关键字来实现类的继承。通过继承,子类拥有了所有父类的属性和方法。Java只支持单继承,不允许多继承Extends.java/定义一个Person类public class PersonString name;int age;void walk()System.out.println(正在走路.);/类Students继承类Person ,这里我们叫Student为子类,Person为父类class Students extends Person/学生类继承了人类,人类所有的属性和方法在学生类中都拥有。class Extendspublic static void main(String args)Students zhiChao = new Students();zhiChao.walk();九、方法的重写1子类可以根据需要对父类中的方法进行重写2 重写的方法和被重写的方法要有相同的方法名字,参数列表和返回类型。3 为什么要对父类的方法进行重写呢? 比如说上面的例子中,子类继承了父类的方法,但是子类对父类的方法必不满足,需要修改父类中的方法。那么就用到了方法的重写!例子:Extends.java中讲解class Students extends Person/学生类继承了人类,人类所有的属性和方法在学生类中都拥有。但是呢,学生类不满足父类中的walk( )方法。就需要对父类中的方法就行重写,方法如下!void walk() /对父类的方法进行了重写System.out.println(拿着本书走路.);十、super关键字前面我们讲过this关键字指当前类。super关键字指当前类的父类!class Students extends Person/学生类继承了人类,人类所有的属性和方法在学生类中都拥有。Student( ) /这是Student的构造方法super( ); / 这是Person中的构造方法,super指代的就是当前类的父类十一、多态(动态绑定)-java的最核心机制 Dynamic.javaclass PersonString name;int age;void walk()System.out.println(正在走路.);class Students extends Person/wolk()方法的重写 void walk()System.out.println(学生拿本书在路上走.); class Teachers extends Person/wolk()方法的重写 void walk()System.out.println(老师背个包在路上走.); class Dynamicpublic static void main(String args)Person p1 = new Students();Person p2 = new Teachers();p1.walk();p2.walk(); 多态机制的三个必要条件:(1)继承 (2)重写 (3)父类对象引用指向子类对象!十二、抽象类1 用abstract修饰的类为抽象类,用abstract修饰的方法为抽象方法2 抽象方法只能声明,不能实现3 含有抽象方法的类必定为抽象类4 抽象类不能被实例化(也就是说抽象类不能new出对象)十三、final关键字final的变量不能改变值,final的方法不能被重写,final类不能被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年精神科心理评估技术应用考核答案及解析
- 2025年中医儿科常见疾病辨证论治模拟考试卷答案及解析
- 2025年急救抢救措施操作技能考核模拟试卷答案及解析
- 2025年急诊护理急救护理操作标准考核试卷答案及解析
- 2025年肾内科常见肾脏疾病诊治模拟试题答案及解析
- 2025北京怀柔区庙城镇社区卫生服务中心招聘合同制2人模拟试卷及答案详解(典优)
- 2025年介入放射学术术前进展综述考试答案及解析
- 2025年护理学专业知识理论考核模拟试卷答案及解析
- 2025年精神科患者评估与干预技巧考核答案及解析
- 2025年临床药学临床药学知识考试卷答案及解析
- 第1课 从食物采集到食物生产 课件-高二历史统编版(2019)选择性必修2 经济与社会生活
- 生涯拍卖会课件高一上学期主题班会
- 中医形神兼养
- GB/T 44241-2024虚拟电厂管理规范
- SYT 6680-2021 石油天然气钻采设备 钻机和修井机出厂验收规范-PDF解密
- 实用美术基础中职全套教学课件
- 子宫内膜癌的预防和早期发现
- 债权债务法律知识讲座
- 个人停车位租赁合同模板
- 食品保质期检测记录表
- 基于教育培训行业的客户关系营销研究
评论
0/150
提交评论