收藏 分销(赏)

Java与面向对象程序设计实验教程课件全套教学教程整套课件全书电子教案.ppt

上传人:精**** 文档编号:10251458 上传时间:2025-04-30 格式:PPT 页数:542 大小:1.81MB
下载 相关 举报
Java与面向对象程序设计实验教程课件全套教学教程整套课件全书电子教案.ppt_第1页
第1页 / 共542页
Java与面向对象程序设计实验教程课件全套教学教程整套课件全书电子教案.ppt_第2页
第2页 / 共542页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象的程序设计,对外经济贸易大学 雷擎,第 1 章 Java 概述,content,1.1 Java,语言的发展和特点,1.2,Java,虚拟机及,java,的跨平台原理,1.3 Java,开发环境,1.4,第一个应用程序,1.5 Java,开发工具介绍,1.1 Java语言的发展,计算机语言的发展历史,Java语言的发展,Java语言的特点,计算机语言的发展历史,语言,什么是语言?,语言是人与人交流的工具(媒介),什么是计算机语言?,人与计算机交流的工具,程序员之间交流的工具,计算机语言分类,机器语言,1300042774,1400593419,1200274027,汇编语言,LOAD b,ADD a,STORE c,高级程序设计语言,c=a+b,编译,解释,机器的表示方式、机器的处理流程,人的表示方式、机器的处理流程,人的表示方式、人的处理流程,高级语言发展历史,第一阶段:以FORTRAN,COBOL等为代表,主要用于工程或商业计算;(50s),第二阶段:以Pascal,C,Ada等为代表,支持结构化程序设计的思想;(60s-70s),第三阶段:以Smalltalk,C+,Java等为代表,支持,面向对象的程序设计思想,;(80s-),java的产生,Java的产生,Birthday:May 23,1995,1991:Set-Top box:James Gosling,1994:OAK and FirstPerson,1995:java and HotJava,Internet play,Java发展回顾,1995年5月23日 Sun正式发布Java和HotJava浏览器。,1995年9月 Sun宣布将提供Java开发工具。,1995年Netscape、Oracle公司、Borland公司、SGI公司、Adobe公司、IBM公司、AT&T公司、Intel公司获得Java许可证。,1995年12月Sun和Netscape发布JavaScript,Sun、Netscape和SGI宣布缔结软件联盟,以开发Java和Internet三维和多媒体交互性工具。,1996年1月Sun宣布成立新的业务部门JavaSoft部,推出Java开发工具包JDK(JavaDevelopmentKit)1.0,1996年2月Sun发布Java芯片系列,包括picoJava,microJava和UltraJava。Sun推出Java数据库联接JDBC 数据库API。,1997年3月Sun推出JDK1.1.1。3月17日Sun向国际标准化组织的第一联合技术委员会(JTC-1)申请成为Java的公开有效规范(PAS)的提案者。,Java语言的特点,简单,面向对象,分布式,执行解释与平台无关,可靠性与安全性,可移植性,结构中立性,支持多线程,动态性,Java类库,组成Java程序的最小单位是类,类封装了数据与处理数据的方法。,对于大多数常用的功能,有大量已经编译好、经过测试的类,这些类的集合就是Java类库。,Java类库主要是随编译器一起提供,也有些类库是由独立软件开发商提供的。,1.2 Java虚拟机及跨平台原理,Java虚拟机,Java的跨平台原理,JVM虚拟机,Windows下c语言编程过程,C源程序(扩展名为.c),Windows 可执行文件(扩展名.exe),Windows操作系统,C编译程序,执行,java语言编程过程,java源程序(扩展名为.java),Java字节码文件(扩展名.class),java,编译程序,Windows 下的java字节码解释程序,linux 下的java字节码解释程序,能直接解释java字节码的cpu,JVM虚拟机,执行,Windows操作系统,执行,Linux操作系统,执行,Java程序编译执行的过程,一次编写,各处运行,1.3 Java开发环境,JDK的安装与介绍,path和classpath的设置,正确认识java,Java是一种计算机高级编程语言,Java技术内涵,编程语言,开发平台,运行环境,Java开发平台,Java2,SDK,(,S,oftware,D,evelopment,K,it),Standard Edition (J2SE),Enterprise Edition(J2EE),Mobile Edition (J2ME),Java的基本环境,开发环境,JDK,包括各种编译、类库管理等工具,以及帮助文档,运行环境,JRE,主要是Java虚拟机,Java的基本API类库等,Java的开发环境搭建,什么是JDK(Java Development Kit)?,开发工具,javac及基础核心类,运行环境,java及基础核心类,下载网址:,JDK的版本1.6,JDK的安装及目录结构,开发环境的设置,JDK的bin目录中的命令,Javac,:Java编译器,用来将java程序编译成 Bytecode。,Java,:Java解释器,执行已经转换成Bytecode的java应用程序。,Jdb,:Java调试器,用来调试java程序。,Javap,:反编译,将类文件还原回方法和变量。,Javadoc,:文档生成器,创建HTML文件。,Appletviewer,:Applet解释器,用来解释已经转换成Bytecode的java小应用程序。,安装JDK后产生的目录,bin目录:Java开发工具,包括Java编译器、解释器等,demo目录:一些实例程序,lib目录:Java开发类库,jre目录:Java运行环境,包括Java虚拟机、运行类库等,环境变量介绍,什么是环境变量?,察看环境变量的两种方式,设置系统环境变量,Path环境变量的作用,%path%的意义,如何解决使用java命令中的问题?,1.4 第一个应用程序,创建Java源文件,编译Java源文件,执行Java程序,Java的基本程序结构,例程,HelloWorld.java,/*,*The HelloWorld class implements an,*application that simply prints Hello World!,*to standard output.,*/,public class HelloWorld,public static void main(String args),System.out.println(,“,Hello World!,”,);,编译和执行,1.编译源文件:,Javac HelloWorld.java,2.编译结果,Java二进制可执行程序,*.class,3.由解释器对字节码解释执行,执行包含main方法的java类,java HelloWorld,解读Hello World!程序,“Hello World!”应用程序三个组成部分:,源代码注释,HelloWorld类定义,main主方法,源代码注释,/*text*/,多行注释,javadoc识别,可生成解释文件,/*,text,*/,多行注释,/,text,单行注释,/*,*The HelloWorld class,*implements an application that,*simply prints Hello World!,*to standard output.,*/,HelloWorldApp类定义,class,类定义关键字,有public修饰称为“主类”,每个java文件至少有一个类定义,public,类的访问权限,HelloWorldApp,类名称,文件名称必须与其一致,HelloWorldApp.java,public class HelloWorld,main主方法,是程序执行的入口,相当于C/C+的main主函数,public class HelloWorld,public static void main(String args),System.out.println(,“,Hello World!,”,);,Java程序的基本结构,Java中的,所有可执行程序代码,都必须存在于,类,中,Java程序的基本结构,import,java包,;,public,class,类名,public static void main(String args),程序语句,相当于C语言中的include,相当于C语言中的main,主类应包含这个入口方法,文件名要与主类名完全相同,Java程序的基本结构,import,语句;,包引用(可选),public class,类名,主类定义(可选),public static void main(String args),例程,HelloWorld.java,import java.lang.*;,public class HelloWorld,public static void main(String args),System.out.println(,“,Hello World!,”,);,Java程序的基本结构,基本概念,源文件名同包含main方法的主类名必须相同,源文件扩展名必须是.java,文件名大小写敏感Java源程序,*.java,Java程序包,*.jar(目录结构),Hello World例程,Java程序的分类:,Application程序,类似于C或其他高级编程语言编写的程序,需要显式使用java引擎启动,Applet程序,小程序,嵌入Web网页的小程序,通过浏览器激活,Hello World例程,HelloWorld,Applet.java,import java.awt.*;,import java.applet.*;,public class HelloWorldApplet extends Applet,public void paint(Graphics g),g.drawString(Hello World!,20,20);,Hello World例程,Applet嵌入网页,1.5 Java开发工具介绍,Eclipse,JBuilder,netBeans,Jcreator,实验1:体验Java编程的过程,Java的源程序文件.java,用javac编译源程序,用java解释执行编译后的.class文件,知识点提示:,Java语言的发展和特点(了解),Java虚拟机及Java的跨平台原理(理解),Java开发环境的搭建(掌握),HelloWorld!的编写编译执行(掌握),Java程序的基本结构(了解),End of chapter 1,第 2 章 Java 语言基础,content,2.1,数据类型,2.2,运算符,2.3,程序流程控制,2.4,注释,实验:基本数据类型和语法,2.1 数据类型,2.1.1 基本数据类型,2.1.2 包装类,2.1.3 数据类型转换,2.1.4 变量,2.1.5 常量,2.1.1 基本数据类型,基本数据类型,整数类型:byte,short,int,long,实数类型:float,double,字符类型:char,布尔类型:boolean,复合数据类型,数组,类(class),接口(interface),2.1.1 基本数据类型,整型,byte:8 bits默认值0,short:16 bits默认值0,int:32 bits默认值0,long:64 bits默认值0,浮点数,float:32 bits默认值0.0F,double:64 bits默认值0.0D(0.0),整型数据类型,byte,short,int,long,数的范围依次增大8-16-32-64bits,默认变量初始值为0,整型常量的形式(默认int类型),十进制,如123,-2,0,八进制,以0开头,如0124,十六进制,以0 x或0X开头,如0 x125,0X126,long类型常量,在数字后加L或l,如127L,128l,实数数据类型,float,double,描述精度依次增加32-64bits,默认的变量初始值:0.0,实型常量的形式(默认double类型),十进制,由数字和,小数点,构成,如0.126,科学计数法,如123e3,123E3,float类型常量,在数字后加F或f,如0.12F,2.13f,2.1.1 基本数据类型,字符型,char:16 bits默认值u0000,采用16位Unicode字符,布尔型,boolean:8 bits默认值false,不能与整型进行混合计算,2.1.1 基本数据类型,与C,C+相比,Java,不支持指针类型,不支持结构体类型、联合体类型和枚举类型,没有sizeof操作符,2.1.2 包装类,Java提供了与基本数据类型相对应的包装类(Wrapper class),具有很直观的方法。,例如:都有doubleValue()方法,包装类,Byte、Short、Boolean、Character、Integer、Double、Float、Long,2.1.3 数据类型转换,基本数据类型之间可以相互转换,两种转换方式:自动转换、强制转换,自动转换,目标数据类型和源类型数据是兼容的,目标数据类型的范围比源类型的大,优先关系:,byteshortcharintlongfloatdouble,2.1.3 数据类型转换,自动转换举例:,byteb;,shorts=b;,inti=b;,longl=b;,Char c=c;i=c;,System.out.println(“output”+i);,2.1.3 数据类型转换,强制转换,大范围的类型转换为小范围的类型,特殊转换,简单类型变量和包装类之间相互转换,2.1.3 数据类型转换,强制转换方法1,(target-type)value,例:,inti;,byteb=(byte)i;,shorts=99;,charc=(char)s;,System.out.println(“output:”+c);,2.1.3 数据类型转换,强制转换方法2,利用包装类构造方法创建新变量,如:,Boolean(String s);,Integer(String s);,Float(String s);,Double(String s);,例:Double(“123”)把字符串”123”转换为数值123.0,2.1.3 数据类型转换,强制转换方法3,利用包装类创建新变量,利用xxValue()转换。其中xx代表不同的基本数据类型。,例:把float型转换为double型,floatf=100.00f;,FloatfW=new Float(f);,double d=fW.doubleValue();,inti=fW.intValue();,2.1.4 变量,变量语法,Type identifier=value,identifier=value;,变量声明规则,变量名必须是一个有效标识符。,每个变量都有类型,例如 int 类型或 Object类型,变量还有作用域。,同一个有效范围内,声明的变量不能重名。,2.1.4 变量,Java标识符(identifiers)规定,以大小写英文字母、数字、下划线“_”和美元符号“$”开始的一个字符序列。,除开始的第一个字符外,后面可跟字母、下划线、美圆符和数字。,标识符区分大小写,没有长度限制,不能与保留字(reserved word)或关键字(keyword)相同,2.1.4 变量,变量的定义,C、pascal,,“,先定义后使用,”,Java,,“,随用随定义,”,变量的作用域(范围),没有全局变量的概念,所有变量的都是局部的,只有static属性的变量或常量,类似于全局变量,2.1.5 常量,Java语言用final关键字定义常量。,例:,final double PI=3.14;,int r=5;,double l=2*PI*r;,注意,常量定义时,需要对其进行初始化,初始化后就不能更改。,定义常量时,变量都用大写字符。,public class ex1_1,public static void main(String args),final,int PRICE=30;,final double PI=3.141592654;,int num,total;,double v,r,h;,num=10;,total=num*PRICE;,System.out.println(total);,r=2.5;,h=3.2;,v=PI*r*r*h;,System.out.println(v);,变量声明,变量,标识符常量,常量声明,变量和常量例子,BACK,2.2 运算符,Java的表达式是由一系列变量、运算符、方法调用构成的,其中java的运算符主要可以分为算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符。,2.2 运算符,算术运算符(+、-、*、/、%、+、-),关系运算符(、=、&、|、),赋值运算符(=、+=、,),条件运算符(?:),其他(分量运算符.、下标运算符、实例运算符instanceof、内存分配运算符new、强制类型转换运算符(type)、,),简单赋值运算符=,复合赋值运算符,*=/=%=+=-=&=|=,E1,op,=,E2,等效于,E1,=,(,T,)(,E1,),op,(,E2,),其中,T,是,E1,的类型,赋值运算符,举例,a=5,a=b=c=5,a=5+(c=6),a=(b=4)+(c=6),a=(b=10)/(c=2),a+=a-=a*a,赋值运算符(续),举例,a=5,表达式的值为 5,a=b=c=5,表达式的值以及 a,b,c 的值都是 5,a=5+(c=6),表达式的值是 11,a 是 11,c 是 6,a=(b=4)+(c=6),表达式的值是 10,,a是10,b是4,c是6,a=(b=10)/(c=2),表达式的值是 5,a是5,b是10,c是2,a+=a-=a*a,等效于,a=a+(a=a-a*a),赋值运算符(续),条件运算符和表达式,条件运算符和条件表达式,运算符:?:,条件表达式:expression1?expression2:expression3,功能等同于if 语句,BACK,2.3 程序控制流程,2.3.1 选择语句,2.3.2 循环语句,2.3.3 跳转语句,语句和复合语句(程序块),语句是程序流程的基本组成,分为:,简单语句,如表达式语句 a=b+c;,复合语句,或程序块,通常是由多个简单语句组成,用一对花括号包围起来,复合语句可以由另外的复合语句组成,形成嵌套的复合语句。如:,.,语句和复合语句(程序块),Java中不允许在两个嵌套的复合语句(块)内声明两个完全同名的变量。如下列代码是错误的:,int a;,float a;,语句和复合语句(程序块),Java语言中允许在任意地方声明变量,这一点与C和Pascal不同。,Java语言中变量的定义,,“,随用随定义,”,,而C和Pascal中是,“,先集中定义,后使用,”,2.3.1 选择语句,Java的选择语句主要有两种:,条件分支语句:if-else 语句,多路分支语句:switch语句,if-else 语句,if,(expression),statementList,if,(expression),statementList1,else,statementList2,if,(expression),statementList1,else if,statementList2,else,statementList,只有if语句,public class Test_1,public static void main(String args),int i=5;,if(i 0&i 0&i 20),System.,out,.println(a大于20);,else if(a 10),System.,out,.println(a大于10且小于等于20);,else if(a 0),System.,out,.println(a大于0且小于等于10);,else,System.,out,.println(a小于0);,switch(expression),case expressionValue1:,statementList,break;,.,case expressionValueN:,statementList,break;,default:,statementList,break;,switch语句,switch举例,public class Score,public static void main(String args)throws Exception,float score=Float.,parseFloat,(s);,System.,out,.println(成绩为:+score+分);,switch(int)(score/10),case 10:,case 9:System.,out,.println(等级:优秀);break;,case 8:System.,out,.println(等级:良好);break;,case 7:System.,out,.println(等级:中等);break;,case 6:System.,out,.println(等级:及格);break;,default:System.,out,.println(等级:不及格!);,2.3.2 循环语句,Java循环语句,for,for-each,while,do-while,Java循环语句的基本组成,初始化部分,循环体部分,迭代部分,终止判断部分,for语句,格式:for(initialization;condition;iteration)/body,for举例,public class TestFor,public static void main(String args),for(int a=1,b=4;a 0),sum+=n;,n-;,System.,out,.println(110的数据和为:+sum);,do-while语句,格式:do /bodywhile(condition);,do-while 循环至少执行它的循环体一次,因为它的条件表达式在循环的结尾,do-while举例,public class Test2_5,public static void main(String args),int n=0;,int sum=0;,do,sum+=n;,n+;,while(n=10);,System.,out,.println(110的数据和为:+sum);,2.3.3 跳转语句,与C/C+不同,Java保留了goto作为关键字,但并没有使用其实现跳转。,Java支持三种跳转语句,break,continue,return,break语句,跳出一个程序块,并执行紧接着该程序块的语句,通常用于跳出一个循环结构,break语句举例,public class TestBreak,public static void main(String arg),int x=0,;,while(x 10),x=(int)(Math.,random()*100);,System.,out,.println(“x的初始值为:+x);,switch(x%2),case 0:System.,out,.println(“x是偶数,x=+x);,break;,case 1:System.,out,.println(“x是奇数,x=+x);,break;,default:System.,out,.println(“default语句 x=+x);break;,continue语句,只出现在循环语句中,作用是跳过continue语句后的剩余语句,直接回到循环的开始部分执行,continue语句举例,public class TestContinue,public static void main(String args),out:,for(int a=1;a=9;a+),for(int b=1;b a),System.out.println(当前a和b分别是+a+和+b+,b大于a,现在跳到外圈去);,continue,out,;,System.out.println(当前a和b分别是+a+和+b+,乘积是+a*b);,System.out.println(内圈正常跑完一圈);,return语句,从Java中的方法返回,Java的方法可以看成一个函数或过程,return语句举例,public class Hello,public static void main(String args),Hello h=new Hello();,int num=h.intRandom();,System.,out.println(Hello World!+num();,public int intRandom(),return,(int)(Math.,random()*10);,BACK,2.4 注释,单行注释,/,多行注释,/*/,文档注释,/*/,javadoc标记,Tag标记,意义,see,指定对另一个主题的链接,serial,为默认的可序列化字段提供文档,serialData,为writeObject()或者writeExternal()方法编写的数据提供文档,serialField,为ObjectStreamField组件提供文档,since,当引入一个特定改变时,声明发布版本,throws,与exception相同,version,指定类的版本,Tag标记,意义,author,确定类的作者,deprecated,指示反对使用这个类或成员,docRoot,指定当前文档的根目录路径(Java 2的1.3版新增),exception,确定一个方法引发的异常,link,插入对另一个主题的内部链接,param,为方法的参数提供文档,return,为方法的返回值提供文档,see,指定对另一个主题的链接,文档注释举例,public class DocComment,/*,*这一方法在控制平台中打出一个hello:这行注释输出到javaDoc文档中,*/,public void sayHello(),/*在控制台打出hello:该注释不会输出到文档中*/,System.,out,.println(hello!);,Javadoc生成文档,命令:javadoc DocComment.java,结果,D:javadoc DocComment.java,正在加载源文件DocComment.java.,正在构造 Javadoc 信息.,标准 Doclet 版本 1.7.0,正在构建所有程序包和类的树.,正在生成cneduuibejavacoursechapter2DocComment.html.,正在生成cneduuibejavacoursechapter2package-frame.html.,正在生成cneduuibejavacoursechapter2package-summary.html.,正在生成cneduuibejavacoursechapter2package-tree.html.,正在生成constant-values.html.,正在构建所有程序包和类的索引.,正在生成overview-tree.html.,正在生成index-all.html.,正在生成deprecated-list.html.,正在构建所有类的索引.,正在生成allclasses-frame.html.,正在生成allclasses-noframe.html.,正在生成index.html.,正在生成help-doc.html.,BACK,小结,2.1 数据类型,2.2 运算符,2.3 程序流程控制,2.4 注释,实验:基本数据类型和语法,实验2:java基本数据类型,实验3:java基本语法,实验提示,Math.random():产生0-1之间的随机数,字符串转换为实数:double num=new Double(String s),输入字符串示例代码:,输入字符串和转换成数值:,Import java.io.*;,public class SimpleIO,public static void main(String args)throws IOException,BufferedReader buf;,String str1=;,double num=0.0;,try,buf=new BufferedReader(new InputStreamReader(System.in);,System.out.print(Input a string1:);,str1=buf.readLine();,num=new Double(str1);,catch(IOException e),BACK,知识点提示:,Java标识符规定(掌握),Java基本数据类型的使用(掌握),Java运算符(掌握,重点掌握赋值运算符),Java类型转换方法(掌握),Java语句控制流程(掌握,重点掌握continue,break,return的使用),End of Chapter 2,第 3 章 类和对象,content,3.1,面向对象程序设计的概念,3.2,类和对象,3.3,内部类,3.4,对象的初始化和清除,3.5,包,实验:类的定义和使用,3.1 面向对象程序设计的概念,面向对象的程序设计,与结构化程序设计方法相比,更符合人类认识现实世界的思维方式,已成为程序设计的主流方向,涉及的主要概念,抽象,封装,继承,多态,1.抽象,忽略问题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面,计算机软件开发中所使用的抽象有,数据抽象(数据和操作结合在一起),过程抽象(功能划分,隐藏具体实现细节),抽象例子1:学生选课,class Student,int stid;,String stname;,class Course,int coid;,String coname;,int total;,int rest;,Studentstudents;,抽象例子1:学生选课,学生,数据(属性),int stid;,String stname;,方法(行为),void registerCourse(),;,void,unRegCourse();,抽象例子2:钟表,数据(属性),int,hour,;,int,minute,;,int,second,;,方法(行为),void setTime(),;,void showTime(),;,抽象例子3:灯,数据(属性),boolean status;,方法(行为),void on(),;,void,off,(),;,2.封装,是一种信息隐蔽技术,利用抽象数据类型将数据和基于数据的操作封装在一起,用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的,封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节,只需使用设计者提供的消息来访问对象,封装的定义,清楚的边界,所有对象的内部信息被限定在这个边界内,接口,对象向外界提供的方法,外界可以通过这些方法与对象进行交互,受保护的内部实现,功能的实现细节,不能从类外访问。,封装例子:钟表,private int,hour,;,private,minute,;,private,second,;,public void setTime(),;,public showTime(),;,封装的意义,在面向对象的程序设计中,,类,封装了数据及对数据的操作,是程序中的,最小模块,禁止了外界直接操作类中的数据,,模块与模块之间只能通过严格控制的接口进行交互,这使得模块之间的偶合度大大降低,保证了模块具有较好的,独立性,,程序维护和修改较为容易,3.继承,是指新的类可以获得已有类(称为超类、基类或父类)的属性和行为,称新类为已有类的派生类(也称为子类),在继承过程中派生类继承了基类的特性,包括方法和实例变量,派生类也可修改继承的方法或增加新的方法,使之更适合特殊的需要,有助于解决软件的可重用性问题,使程序结构清晰,降低了编码和维护的工作量,4.多态,一个程序中同名的不同方法共存,主要通过子类对父类方法的覆盖来实现,不同类的对象可以响应同名的消息(方法),具体的实现方法却不同,使语言具有灵活、抽象、行为共享、代码共享的优势,很好地解决了应用程序方法同名问题,面向对象程序设计,基本组成单位是类,程序在运行时由类生成对象,对象是面向对象程序的核心,对象之间通过发送消息进行通信,互相协作完成相应功能,对象,现实世界中,万物皆对象,都具有,各自的属性,对外界都呈现各自的行为,程序中,一切都是对象,都具有标识(identity),属性和行为(方法),通过一个或多个变量来保存其状态,通过方法(method)实现他的行为,类,将属性及行为相同或相似的对象归为一类,类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为,在面向对象的程序设计中,每一个对象都属于某个特定的类,Java中类与对象的关系,类是一种复合数据类型,是Java程序的基本组成要素,描述了一类对象的状态和行为,其基本成分包括:,成员变量,成员方法,类相当于程序中数据类型,对象是一个具体的变量。,BACK,3.2 类和对象,3.2.1,类的定义,3.2.2,对象的创建与使用,3.2.3,类成员变量,3.2.4,类成员方法,3.2.5,静态代码块,3.2.6,访问控制,BACK,3.2.1 类的定义,定义形式,public,abstract,|,final,class 类名称,extends 父类名称,implements 接口名称列表,变量成员声明及初始化;,方法声明及方法体;,最简单的类,class Light,class Circle,BACK,3.2.2 对象的创建与使用,变量和对象,变量除了存储基本数据类型的数据,还能存储对象的引用,用来存储对象引用的变量称为引用变量,类的对象也称为类的实例,创建对象,创建对象的两个步骤,声明对象名,分配内存空间,对象的声明,格式,类名称,变量名称,例如,Circle,是已经声明的类名,则下面语句声明的变量,acircle,将用于存储该类对象的引用:,Circle aCircle;,声明一个引用变量时并没有对象生成,分配内存空间,生成实例的格式:,new(),例如:,aCircle=new Circle(),其作用是:,在内存中
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服