




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲教师: xxx,Java语言程序设计, Java语言程序设计,第六章:类、对象和接口,6.1 什么类-1,面向对象程序(OOP)语句能使现实世界中的概念,在计算机程序中变成模块。它包括整个程序、程序的模块及数据和算法。 OOP语言有三个特征:封装性、继承性及多态性。所有这些特征与类的概念是息息相关的。 类封装了一类对象的状态和方法。类是定义对象的模板。 类的声明: class People ,6.1 什么类-2,6.1 什么类-3,类的声明与定义:,6.1 什么类-4,类的声明与定义: public :这个public关键字声明了类可以在其它任何的类中使用。 abstract :声明的类不能被实例化。 final:声明的类不能被继承,即不能有子类。 class NameOfClass :关键字class指示编译器类的声明以及类的名字是NameOfClass。 extends Super :这个extends 子句认为Super是类的父类。 implements Interfaces :为了声明类可执行一个或多个接口,可以使用关键字implements并且在其后面给出由类执行的接口名字的列表,它们是以逗号分隔的。,6.1 什么类-5,成员变量和局部变量: (1)成员变量和局部变量的类型可以是任何一种数据类型。 (2)成员变量在整个类内有效,局部变量只在定义它的方法内有效。 class Aint x; int f()int a; a = x; int g()int y; y=a; (3)成员变量又分为实例成员变量和类成员变量。 class dogfloat x; static int y; (4)变量的名字与成员变量的名字相同,成员变量被隐藏。 class Tomint x=98,y; void f()int x=3; y=x; (5)上面情况中要在该方法内使用成员变量,使用this; class Jerry float x,y,x; void g(float z) float x=1;y=23; this.x=x; this.y=y;this.z=z;,6.1 什么类-6,方法: (1)方法的重载。 class Tom float jerry(float s)return s float jerry(float x,int y)return x*x+y*y; (2)构造方法。 class Pointint x,y; Pointx=67; y=100; (3)类方法和实例方法。 class Aint a=23; float max(float x,float y); static float jerry() ,6.1 什么类-7,= 和 equals()的区别 传值和传引用 内部类 匿名类,6.2 什么对象-1,创建对象: (1)对象的声明。 Point p1; (2)为声明的对象分配内存空间。 p1=new Point(); (3)p1是引用,使用new之前,并未对象分配空间。,0x1234,12,24,p1,x,y,6.2 什么对象-2,类中的访问权限:,6.3 类的继承-1,创建子类: 格式如下:class Students extends People。 (1)子类自然继承父类中不是private的成员。如果一个类没有使用extends关键字,系统默认是Object的子类。Object 是包java.lang中的类。 (2)成员变量的隐藏和方法的重写。 class Chengjifloat f(float x,float y)return x*y; class Xiangjia extends Chengji float f(float x,float y)return x+y ; public class Test public static void main(String args) Xiangjia sum; sum=new Xiangjia(); sum.f(4,6);,6.3 类的继承-2,(3)运行时的多态性。 class Shape float area()return 0.0; class Circle extends Shape float r; float area()return 3.14*r*r; class Rect extends Shape float x,y; float area()return x*y; public class Test public static void main(String args) Shape s; s=new Circle(); s.area();,6.3 类的继承-3,(4)final类和final方法。final类不能被继承,final方法不能被修改。 final class A class B extends A (5)abstract 类和abstract方法。 abstract 类不能创建对象,必须产生子类,由子类创建对象。 abstract方法,只允许声明,不允许实现。 abstract 类可以没有abstract方法;但一个类如果有abstract方法,这个类必须用abstract修饰。 (6)使用super关键字。在子类中想使用被子类隐藏的父类的成员需利用super关键字。,6.3 类的继承-4,public class Employee private String name; private int salary; public String getDetails() return Name: “ + name + “nSalary: “ + salary; public class Manager extends Employee private String department; public String getDetails() return super.getDetails() + / call parents / method “nDepartment: “ + department; ,6.3 类的继承-5,(7)instanceof 运算符 : public class Employee extends Object public class Manager extends Employee public class Contractor extends Employee public void method(Employee e) if (e instanceof Manager) / Get benefits and options along with salary else if (e instanceof Contractor) / Get hourly rates else / temporary employee ,6.4 接口-1,Java不支持多重继承,一个子类只能有一个父类。Java使用接口来实现多个接口。 接口的定义与声明: interface Printable final int MAX =100;void add(); float sum(float x,float y); 接口的使用: class A impelents Printable ,Addable。 接口中的方法默认是public的,所以类在实现接口方法时,一定用public来修饰。,6.4 接口-2,import java.awt.*; import java.applet.*; import java.awt.event.*; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class s extends Applet implements MouseListener Image img1,img2; AudioClip clip; boolean tag; public void init() img1=getImage(getCodeBase(),“ys.jpg“); img2=getImage(getCodeBase(),“ws.jpg“); clip=getAudioClip(getCodeBase(),“bg.au“); tag=true; addMouseListener(this); ,6.4 接口-3,public void paint(Graphics g) if (tag)g.drawImage(img1,0,0,this); clip.loop(); else g.drawImage(img2,0,0,this); clip.stop(); public void mouseClicked(MouseEvent parm1) / TODO: Add your code here tag= !tag; repaint(); public void destroy() if (clip!=null) clip.stop(); clip=null; public void mousePressed(MouseEvent parm1) public void mouseReleased(MouseEvent parm1) public void mouseEntered(MouseEvent parm1) / TODO: Add your code here public void mouseExited(MouseEvent parm1) / TODO: Add your code here ,6.5 包-1,1、包声明必须在源程序文件的开始被声明 2、一个源程序文件,只允许有一个包声明 / Class Employee of the Finance department for / the ABC company package abc.financedept; public class Employee . 3、包名称是分层的,由圆点隔开 。包名都用小写字母表示。 4、通过包命名机制,可以确保类名的唯一性。 cn . com . sina 5、如果源程序省略了包名,则源文件中定义的类默认为无名包的一部分。,6.5 包-2,6、如果程序使用了包 package tom . jiafei ; class People 那么你的目录结构必须为 tomjiafei; 比如:c:projecttomjiafei,且你的classpath中含有 c:proj
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽芜湖市国有资本投资运营有限公司招聘10人考前自测高频考点模拟试题及答案详解(新)
- 张家口市中医院医疗安全预警处置考核
- 2025内蒙古锡林郭勒盟锡盟文体局招募公共服务文化人才志愿者1名模拟试卷附答案详解(模拟题)
- 2025年上海市闵行区莘庄实验小学代课教师招聘考前自测高频考点模拟试题及答案详解(易错题)
- 沧州市人民医院医疗器械消毒灭菌考核
- 2025年淮南毛集实验区招聘区属国有企业3人考前自测高频考点模拟试题及答案详解(典优)
- 2025年池州市贵池区招聘教师24人模拟试卷有完整答案详解
- 秦皇岛市中医院鉴别诊断思维能力考核
- 2025第二人民医院颈椎后路单开门椎管成形术专项技能考核
- 邢台市中医院脑血管畸形栓塞治疗技术考核
- 2025-2030中国啤酒企业海外并购案例及跨文化整合经验总结
- 2025成人高考政治真题及答案
- 国开2025年《行政领导学》形考作业1-4答案
- 2022年广东省文化局事业单位人员招聘笔试试题及答案解析
- 顶管沉井专项施工方案
- GA 1167-2014探火管式灭火装置
- 2022年国家电网有限公司特高压建设分公司校园招聘笔试试题及答案解析
- 文物保护施工方案
- 建筑施工现场消防专题培训课件
- 高中通用技术(相框)设计方案
- 医院老院区病房楼改造工程案例课件
评论
0/150
提交评论