高教类课件:Java面向对象程序设计.ppt

上传人(卖家):三亚风情 文档编号:3175859 上传时间:2022-07-28 格式:PPT 页数:536 大小:4.35MB
下载 相关 举报
高教类课件:Java面向对象程序设计.ppt_第1页
第1页 / 共536页
高教类课件:Java面向对象程序设计.ppt_第2页
第2页 / 共536页
高教类课件:Java面向对象程序设计.ppt_第3页
第3页 / 共536页
高教类课件:Java面向对象程序设计.ppt_第4页
第4页 / 共536页
高教类课件:Java面向对象程序设计.ppt_第5页
第5页 / 共536页
点击查看更多>>
资源描述

1、第1章概述教学目标 了解Java的历史和基本原理 理解Java 平台无关性的含义 掌握Java application的结构 理解Java application与Java applet的联系与区别 掌握Java application与Java applet编辑、编译与运行的方法 初步了解类和对象的概念 主要内容 Java的发展 Java的特点 Java运行环境 Java应用程序举例 Java applet程序举例 面向对象程序设计 本章小结 本章实训Java的发展(一)Java是由Sun Microsystems的James Gosling所领导的开发小组设计的。最初的版本是1991年的橡

2、树(Oak),其目标是设计独立于平台且能够嵌入到不同的消费类电子产品的程序。随着Internet及WWW的发展,Web也需要在不同的环境不同的平台上进行程序的移植,这个变化导致了Oak的转型及Java的诞生。1995年,Sun公司对Oak进行了修改,用于开发Internet应用程序,并将其命名为Java。Java的发展(二)Java的主要版本:Java 2被分成J2SE、J2EE和J2ME三种平台。J2SEJ2SE,即Java 2 Platform Standard EditionJava 2标准版,是一种开发和部署平台,提供了编写桌面应用程序所有必需的功能。J2EEJ2EE,即Java 2

3、Platform Enterprise Edition Java 2企业版。J2EE是针对Internet环境下企业级应用推出的一种全新概念的模型,适合于开发服务器端应用程序或者大型ERP系统等。J2MEJ2ME,即Java 2 Platform Micro EditionJava2微型版。应用于各种各样的消费电子产品上,例如智能卡、手机、PDA、电视机顶盒等方面。Java的特点 Java是简单的 Java是面向对象的 Java是结构中立的 Java是安全的 Java是可移植的Java运行环境 Java程序开发环境一般要提供编辑、编译与运行编辑、编译与运行工具。Java程序的编辑可以使用任何一

4、个编辑器,编译与运行则通过Sun公司提供的Java开发工具箱JDK(Java Development Toolkit)进行。JDK 是一个简单的命令行工具集,包括软件库、编译Java源程序的编译器、执行字节码的解释器以及其他的一些实用工具。下载地址,http:/ JDK安装,注意环境变量的设置。Java应用程序举例 public class Simple public static void main(String args)/输出一个字符串 System.out.println(This is a simple program!);注释输出结果类名或文件名Java应用程序结构(一)类,如Si

5、mple为类名。方法与main()方法,如 System.println()是用于输出的方法。标识符与关键字 如 class、public、args等。语句,如println(This is a simple program!)注释,有三种/、/*/、/*/。Java应用程序结构(二)块Java应用程序开发过程 一个Java程序的开发过程通常包括创建、编译、运行等几个阶段。文本编辑器编辑程序,并命名为Simple.java。命令javac Simple.javajavac Simple.java javac.exe编译Simple.java文件,产生字节码文件Simple.class。命令ja

6、va Simplejava Simplejava.exe运行字节码文件,产生结果 Java applet程序举例/文件名SimpleApplet.javaimport java.awt.Graphics;public class SimpleApplet extends java.applet.Applet public void paint(Graphics g)g.drawString(“This is a simple applet!”,15,15);程序编译产生SimpleApplet.classJava applet的开发过程创建并编译applet 创建调用applet的HTML文件

7、,如右图。浏览applet 1.在DOS命令行使用命令appletviewer simpleapplet.html 2.用WWW浏览器 The example of Java appletapplet程序组成 import语句 类 方法paint()和类Graphics 类继承和关键字extends 关键字extends表示程序中定义的类是紧随其后的类(已经存在的类)的扩展。类SimpleApplet是Java中类Applet的扩展,则扩展类SimpleApplet继承了Applet类的所有功能与属性。面向对象程序设计(一)对象 对象的属性决定了对象是什么,行为决定了对象能够做什么。在具体的程

8、序设计中,对象的属性是一些数据域的集合,行为则是方法的集合。也就是说,对象是数据及其处理方法的一个封装。面向对象程序设计(二)类决定了对象的结构,对象是类的一个具体实例,一个类可以有许多不同的对象,这些对象具有共同的属性。先定义类,再有对象 面向对象的三个特性 继承、封装和多态 面向对象程序设计过程本章小结 介绍了Java的起源与发展,Java的基本特点。通过具体的例子分析了Java application及Java applet的组成,并讨论了它们的关系。初步介绍了面向对象程序设计的基本方法,简单地说明了类及对象等概念。本章实训实验目的了解JDK的安装和使用。熟悉Javaapplicatio

9、n和Java applet的编辑、编译和运行环境参考配套实验手册的实验一 第2章基本数据类型与表达式 教学目标 在程序中定义合适的标识符 正确地构造表达式 理解基本数据类型并能正确地使用 根据需要定义变量主要内容 标识符 Java基本数据类型 常量、变量和赋值 运算符和表达式 本章小结 本章实训引例 已知三角形的三条边,计算它的周长与面积。分析:可以借鉴逐步求精的方法将一个大的问题分解为若干个小问题,逐步逼近问题的解决方案。根据第1章讨论的知识,我们知道Java程序是由类组成的。因此可以将问题转化为“设计一个计算三角形周长与面积的类”。由于暂时还没有学习类与对象的概念,我们先假设类已经定义好了

10、,直接考虑如何根据需要处理数据。/文件名Ex2_1.javaimportjava.io.*;publicclassEx2_1publicstaticvoidmain(Stringargs)inta,b,c,p,s;floatarea;a=8;b=5;c=10;p=a+b+c;s=p/2area=(float)Math.sqrt(s-a)*(s-b)*(s-c)*s);System.out.println(Thelengthofthreesideis“+a+,+b+,+c);System.out.println(Thesidesoftriangleis:+p);System.out.printl

11、n(Theareaoftriangleis:+area);引入类定义主类定义main()方法声明变量给变量a、b、c赋值计算周长和面积标识符标识符可以由字母、数字、下划线(_)及美元符号($)按一定的顺序组合而成,但不能以数字开头。例如,average、table12及$price等均为有效的标识符,而5_step则为非法标识符。Java语言对标识符还有如下规定标识符的长度不限,但不宜过长。一般遵循“见名知义”原则,即为标识符取一个能代表其意义的名称。标识符区分字母的大小写。如Student和student是两个不同的标识符。标识符不能是关键字。关键字 关键字是指被系统所保留使用并赋予特定意义

12、的一些标识符,这些关键字不能被编程人员用作标识符。它们只能按照预先定义好的方式使用,不能作为其他用途。Java基本数据类型 Java中的数据类型分为基本数据类型和复杂数据类型两类。基本数据类型包括数值型、字符型及布尔型。复杂数据类型包括类、接口和数组等,也称为引用类型,即通过对象的创建,获得引用类型的值。数值型(一)Java的数值型数据又分为整数和浮点数两种类型,整数不带小数点,浮点数含有小数点。整数有byte(字节型)、short(短整型)、int(整型)及long(长整型)等4种。浮点型数据有float(单精度浮点型)和double(双精度浮点型)两种。在数值后加l或L表示该数值是long

13、类型,Java默认所有的浮点值属于double类型 的数据。如果需要处理float类型的数据 必须在数值后面加一个F或者f,例如:inti=3;intj=8;floatk=5.0f;longm=26l;数值型(二)存储数据要占用一定的存储空间,不同类型的数据所占用的存储空间不同。所有数值类型依据其占用的内存空间大小进行区分。在设计程序的过程中,程序员需要选择大小合适的变量类型,否则有可能造成内存空间的浪费。L L 字符型 Java中的字符型数据用char表示,它的值用16个bit来存储,取值范围是065536。它表示的是Unicode码表所定义的国际化字符集中所收集的所有字符。Java中的字符

14、可以比较大小,类似于ASCII码的大小比较。例如,char grade1=A,grade2=B;Java用单引号来表示字符型数据。如A、c、#、&与9等等。布尔型 布尔型(boolean)是一种表示逻辑值的简单数据类型。它的取值只能是常量true或false这两个值中的一个,在存储器中占8个bit。通常用于程序中的一些逻辑判断从而对程序的运行进行控制。例如,根据成绩的及格线60分,判断考试是否通过。int grade;boolean passing;if(grade=60)passing=true;else passing=false;常量(一)常量(constant),顾名思义就是在程序运行

15、过程中其值不会被改变的量,常量也叫常数,也被称为“字面量”。在Java语言中,常量按其数据类型可分为整型常量、浮点型常量、字符型常量、字符串常量与布尔型常量等5种类型。整型常量和浮点型常量都属于数值型。字符型常量是指Unicode字符集中的所有单个字符,包括可以打印的字符和不可打印的控制字符。常量(二)字符型常量的表示形式有四种:(1)以单引号括起来的单个字符,如a”。(2)以单引号括起来的“”加三位八进制数,形为ddd,其中d可以是07中的任一个数,如141表示字符a。其中ddd的取值范围只能在八进制数的000777之间,因而它不能表示出Unicode字符集中的全部字符。(3)以单引号括起来

16、的u加四位十六进制数,可以表示出Unicode字符集中的所有字符。(4)对于那些不能被直接包括的字符以及一些控制字符。常量(三)字符串常量就是用双引号括起来的由零到多个字符组成的字符序列。如“Hello World!”,“I am a programmer.n”等。字符常量的八进制、十六进制表示法和转义序列在字符串中同样可用。布尔型常量只有两个值,true和false。常量定义格式:常量定义格式:final 数据类型 常量名称=常量值;常量举例public class Ex2_2 public static void main(String args)final int Day=30;fina

17、l double Pay=45.6;final String Str=It is begin!;double total;total=Day*Pay;System.out.println(Str);System.out.println(*_*);System.out.println(Day=+Day+tPay=+Pay);System.out.println(total=+total);定义了三个常量变量 变量(variables)是Java程序中的一个基本存储单元,是在程序运行过程中其值可以改变的量。一个变量蕴含有三个含义:变量的名称。变量的名称简称变量名,变量名是用户自己定义的标识符,它表

18、明了变量的存在性和唯一性;变量的属性。即变量的数据类型;变量的初值。变量的值是指存放在变量名所标记的存储 单元中的数据。例如,int math=78,english=80;public class Ex2_3 public static void main(String args)byte a=10;short b=020;int c=0 x30;long d=1234567890123L;byte e=129;float ff=1.234f;double dd=34.56d;System.out.println(字节型变量的值:a=+a);System.out.println(短整型变量的值

19、:b=+b);System.out.println(整型变量的值:c=+c);System.out.println(长整型变量的值:d=+d);System.out.println(单精度度浮点型的值:ff=+ff);System.out.println(双精度浮点型的值:dd=+dd);程序中定义了数值型的四种变量和浮点型的两种变量,注意这六种类型变量定义的关键字,分别是它们的数据类型。程序中定义了的变量b和c分别以八进制和十六进制表示,输出结果以十进制数表示,因此结果为b=16和c=48。变量举例/字符型变量和布尔型变量的定义及赋值publicclassEx2_4publicstaticv

20、oidmain(Stringargs)charc1=a;charc2=141;charc3=u0061;charc4=;booleanf1=true,f2;f2=43;System.out.println(字符型变量的值:c1=+c1+c2=+c2+c3=+c3);System.out.println(字符型变量的值:c4=+c4);System.out.println(布尔型变量的值:f1=+f1+f2=+f2);程序中定义了四个字符型变量,用关键字char 定义字符型变量,其中c1、c2、c3的定义分别使用字符型的三种表示方法,c1以单引号括起来,c2以十六进制表示,c3以Unicode编

21、码表示,运行结果均是字符a。c4用转义字符输出。布尔型变量f1定义时赋值为true,f2赋值为43,这是一个比较表达式,结果为false。赋值语句 赋值语句的一般形式为:float value,price;value=0.0f;/value初值为0price=0.5f;value=12*price;变量名=表达式;赋值语句执行的过程中,先计算出表达式的值,然后把该值存储到赋值运算符(=)左边的变量所代表的存储单元,并覆盖其原有的值。类型转换(之一自动转换)自动转换是在程序运行过程中不需人为干预而自动进行的从一种数据类型到另一种数据类型的转换。有两种类型:赋值转换赋值转换 两种数据类型必须是兼容

22、的,并且目标数据类型的取值范围比源数据类型的取值范围大。如,byte类型可以转换为short、int、long、float、double。表达式中的自动转换表达式中的自动转换 1.Java在分析表达式时会自动把表达式中的byte和short 型数据转换成int类型数据。如右图所示,编译会出错。2.当表达式中有两个数据类型不同的数据进行运算时,总是先把取值范围小的数据转换成取值范围大的数 据的类型然后再进行运算。如右图所示结果为double型 short a,b;a=50;b=a/2;int a;float b;double c;c=a+b+c;类型转换(之二强制类型转换)对于不能自动进行的类型

23、转换,这时我们就要强制类型转换。强制类型转换的一般格式为:其中,目标数据类型是指要将被转换数据转换成的数据类型;被转换数据可以是变量、表达式等。如要把double型变量money的值转换成int型,形式为:(int)money。(目标数据类型)被转换数据/从键盘读入一个字符,并输出这个字符。import java.io.*;public class Ex2_6 public static void main(String args)char ch=;System.out.println(Input a interger or character:);try ch=(char)System.in

24、.read();/从键盘中读入一个字符 catch(IOException e)System.out.println(The input is+ch+);程序定义了一个字符型变量ch,接收输入的字符。System.in.read()表示从键盘输入流中读入一个字节并返回它的值,返回值是0到255的int 值,需要进行异常处理。由于返回值为int型,因此要输出这个字符,须强制转换为char型。程序中用了try-catch语句进行异常处理。运算符与表达式运算符与表达式 一个常量或一个变量是最简单的表达式。一般的表达式是指由数据和运算符连接在一起的符合Java语法规则的式子。如a=1、a+b-c*d、

25、ab等。这里的数据是常量或变量,表达式中数据的连接符+、-、*、=及、=、b;则结果c=false。逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 Java中共有6个逻辑运算符。如果它们的操作数是布尔类型的数据,其结果也是布尔类型。Java逻辑运算符:!、&、|、&、|。&和|也被称为“短路逻辑运算符”,在运算过程中会产生“短路效应”,如a&b,当a为false时不再判断b,直接判定a&b的值为false;若是a|b,当a为true时不再判断b,直接判定a|b的值为true。而对于&和|则不会出现这种情况,它们是先计算出两边操作数的值,然后再进行逻辑判断。另外,当&、和|的操作数为布尔类型时它们

26、是逻辑运算符,进行逻辑运算,但若操作数为整数及字符时,它们会作为位运算符进行位运算。public class Ex2_8 public static void main(String args)int a=3,b=8;boolean c,d,e=false,f1,f2,g=true;c=ab;d=c&(e=ab);/c为false,e值未被改变 f1=g|(e=ab);/g值被改变 System.out.println(a=+a);System.out.println(b=+b);System.out.println(ab=+c);System.out.println(c&(e=ab)?a:(

27、cd)?c:d 其中a=5,b=8,c=1,d=9。根据右结合性,应先计算(cd)?c:d。因为19为false,故取d=9为该表达式的结果。再计算(ab)?a:d,结果为9。条件表达式?语句1:语句2位运算符位运算符 Java中,可以使用位运算直接对整数类型和字符类型的数据的位进行操作。Java中位运算符有:、&、|。Java中的数是以补码表示的。正数的补码就是其原码,负数的补码是其对应的正数按位取反(1变为0,0变为1)后再加1。例:byte a=7,b=-7,c=15,d=42则 a:00000111 b:11111001 c:00001111 d:00101010 c=-16:1111

28、0000 a2=-2:11111110 b2=62:00111110 c&d=10:00001111 cd=37:00001111 c|d=47:00001111&00101010 00101010|00101010 -00001010 00100101 00101111赋值运算符和赋值表达式赋值运算符和赋值表达式 赋值运算符:=。例如,a=b就是把变量b的值赋给变量a,则b与a的值相同,a原来的值丢弃。赋值运算符除了上面的“=”之外还有一些扩展的赋值运算符。这些扩展赋值运算符的使用不仅可以使程序表达简练,而且可以提高程序的编译速度。扩展赋值运算符就是把赋值运算符与算术运算符、逻辑运算符或位运

29、算符中的双目运算符结合起来而形成的赋值运算符。扩展赋值运算符:+=-=*=/=%=&=|=运算符优先级 在一个表达式中可能有多个数据与运算符,那么,计算这个表达式时应该先计算哪些后计算哪些呢?这就要为运算符规定它们的优先级。Java运算符的运算级别共分为15级,其中1级优先级最高,15级最低。例如,计算下面的表达式的值。3*184/2 显然上面表达式的运算结果为56,如果我们将此改成下面的表达式:3*(184)/2 则其运算结果为33。因为括号级别最高,先计算括号里的数据,再按照算术运算的规则,相同级别的先左后右,先乘以3再除以2。/判断2006年是否闰年。public class Ex2_9

30、 public static void main(String args)int year=2006;boolean t;t=year%400=0|year%4=0&year%100!=0;System.out.println(year+is intercalary year=+t);语句t=year%400=0|year%4=0&year%100!=0;整体是赋值运算,右边部分是逻辑表达式,其中包含算术运算、关系运算和逻辑运算。如果采用从命令行接收数据的方法,将大大改善程序。将语句:int year=2006;修改为下面两条语句即可。int year;year=Integer.parseIn

31、t(args0);实例1 请将一个四位正整数的个、十、百、千位4个数的和求出,并分别输出这四个数及它们的和。分析:采用自顶向下、逐步求精的方法,先给出总的框架,再分析问题,然后逐步细化。1总体步骤(1)输入一个四位数:3587;(2)分别求出个、十、百、千四个数,并将这四个数相加;(3)输出四个数的和。2逐步细化及分析(1)定义一个正整数,保存在一个整型变量s中;(2)这一步是数据处理过程,要求完成的任务较多。根据数学运算方便,从高位开始,先分别求出四个位上的数,再进行相加。千位=s/1000,百位=(s-千位*1000)/100,十位=(s%100)/10,个位=s%10,和=千位+百位+十

32、位+个位(3)分别输出这五个数。实例2 从键盘输入一个整数,进行除法运算。分析:从键盘输入一个整数,应用命令行参数的方法可以获得。然而进行除法运算时,由于除数可能为零,会产生运行错误。需采用异常处理的方法解决。i=Integer.parseInt(args0);意思是将从命令行接收的第一个参数(存放在数组元素args0中),转换成整数送给变量i。import java.io.*;public class Ex2_11 public static void main(String args)int i;System.out.println(Input a integer or character

33、:);i=Integer.parseInt(args0);/从命令行接收一个数 try int j=10/i;System.out.println(The input is+i+j=+j);catch(ArithmeticException e)System.out.println(the exception is:+e);实例3(一)已知年利率、贷款年数和贷款金额,计算月偿还金额和总偿还金额,并将它们显示。分析:1给出月偿还金额和总偿还金额的公式月偿还金额=(贷款金额*月利率)/(1-1/(1+月利率)贷款年数*12)总偿还金额=月偿还金额*年数*122由第1步看到,只要知道月利率即可求出结

34、果。而已知年利率,因此,月利率=年利率/12。3输入其他参数,代入第1步公式,计算出结果,最后输出结果。public class Ex2_12 public static void main(String args)double nln;int years;double dj;System.out.println(Enter yearly rate,for example 2.25:);nln=DefInput.readDouble();double yln=nln/1200;System.out.println(Enter number of years,for example 8:);ye

35、ars=DefInput.readInt();System.out.println(Enter load ammount,for example 30000:);dj=DefInput.readDouble();double monthlyPay=dj*yln/(1-1/(Math.pow(1+yln,years*12);double totalPay=monthlyPay*years*12;System.out.println(The monthly pay is:+monthlyPay);System.out.println(The total pay is:+totalPay);程序中的

36、定义的变量都必须进行说明,并根据存储的数据定义了合适的类型。例如,年份为整型,金额定义为双精度型。从键盘上读入数据用DefInput类的方法readInt()和readDouble()。但要保证DefInput类与Ex2_12.class类在一个目录下,才能这样用上面两个方法。本章小结 Java标识符的定义 Java常量、变量的概念 Java基本数据类型的定义和简单应用 Java的赋值和类型转换 Java运算符 Java表达式本章实训实训目的掌握Java关键字和标识符定义。熟练简单数据类型的定义和引用。理解基本数据类型变量的赋值、数据类型之间的转换。掌握各种运算符和表达式的使用及运算符的优先级

37、。参考配套实训手册的实训二 第3章使用类和对象编程教学目标 理解类和对象的基础知识 掌握类和对象的创建与应用 理解方法和构造方法的概念 掌握方法的声明和调用 学会使用构造方法 编写简单的面向对象程序主要内容 创建类 成员变量与方法 对象 再谈方法 内部类 实例 本章小结 本章实训创建类(引例)例3.1现在我们再来看第2章例题2.1,在其逐步求精的过程中,并没有很好的体现面向对象的特点,现将其作如下的修改。分析:可以用逐步求精的方法逐步逼近问题的解决方案,Java程序是由类组成的,可以将问题转化为“设计一个计算三角形周长与面积的类”。引例求精分析(1)定义一个计算三角形周长与面积的类Triang

38、le 引入标准类 声明类 确定三角形属性(定义三条边)计算周长(定义方法side)计算面积(定义方法area)(2)定义主类引用标准类声明主类及main方法定义三条边的具体值调用计算周长方法调用计算面积方法输出结果引例代码importjava.io.*;classTriangleprivateintd1,d2,d3;publicvoidsetSide(intx,inty,intz)d1=x;d2=y;d3=z;publicintgirth()returnd1+d2+d3;floatarea()intp;floats;p=(d1+d2+d3)/2;s=(float)Math.sqrt(p*(p-

39、d1)*(p-d2)*(p-d3);returns;publicclassEx3_1publicstaticvoidmain(Stringargs)inta,b,c,zhouch,mianji;a=8;b=6;c=10;Triangletri=newTriangle();tri.setSide(a,b,c);zhouch=tri.girth();floatmianji=tri.area();System.out.println(三角形周长=+zhouch);System.out.println(三角形面积=+area);定义类triangle的属性创建方法创建方法girth()求周长及area

40、()求面积声 明 和 创 建 类triangle对象调用上述三个方法程序分析:上述程序中,定义了名称为Triangle的类。类体中,数据d1、d2和d3是类的属性,用来定义三角形的三边,方法setSide()设置三角形的三边,方法girth()求三角形的周长,方法area()是计算三角形面积。主方法中,创建了Triangle的对象并存储到对象变量tri中,tri是Triangle类的实例化。根据tri.setSide()中获得的三角形的边长,tri.girth()调用类Triangle中的firth()方法计算周长,结果送给变量zhouch;tri.area()调用类Triangle中的are

41、a()方法计算面积,结果返回到变量area中。类的定义 类是一种复杂数据类型,定义对象的结构。将属性和方法封装在一个类中,在Java类中,属性以数据来描述,方法用来实现对象的行为。类的基本格式如下:数据值表示存储在每个对象里的结果,而方法则表示对象可以提供的功能。数据和方法统称为类的成员,数据成员也称为实例变量。class 类名/类说明/花括号中为类体部分 类的定义举例class是关键字,用来定义类,类名指的是类的名称。类名的命名与标识符的命名一致。注意,类名的第一个字母通常要大写,且如果是多个单词连接而成,每个单词首字母都大写,类名最好能体现类的功能或作用。例如,定义类Peopleclass

42、Peopleintage;Stringname;intaged()类People中数据域是age和name,aged()是方法。例好,定义类DeskclassDeskintlength,width,height;floatprice;floatcubage()Desk类的属性是length、width、height以及price,方法cubage()应用变量length、width、height的数值计算体积。类声明的完整格式 public:说明该类为公共类,它可以被本类和其他任何类及成员方法所使用。Java程序中至多有一个类是public类。default:如果类名前不用修饰符,指的就是默认

43、访问情形,只能被本类和同一个包中的其他类、接口及成员方法引用。abstract:用该修饰符修饰的类称为抽象类。它是一种没有具体对象的概念类,是它所有公共子类的公共属性集合。final:用该修饰符修饰的类不能有子类,称为最终类。修饰符 class extends implements 成员变量的定义成员变量位于类体中,在方法定义之外所定义的变量,方法内定义的变量称为方法变量或局部变量。成员变量和方法变量可以是简单类型,也可以是数组或类等引用类型。成员变量定义的格式为:例如,类ExampleClass中定义了成员变量d,i和j,在类体的方法method()中定义的变量f,g是方法变量。classE

44、xampleClasspublicdoubled;/成员变量d,i,jprivateinti,j;method()floatf,g;/方法变量f,g访问权限符 static final 类型 变量名1,变量名2,成员变量访问权限符public(公共的)、protected(受保护的)、private(私有的)和default(缺省的)。解释如下:public:用该public修饰的成员变量称为公共变量,可以被程序中任何类访问。protected:用protected修饰的成员变量可以被本类、同一包中该类的子类及其他包中的该类的子类访问。private:用private修饰的成员变量只能被本类访

45、问。用private修饰成员变量可以实现数据隐藏机制 default:如果定义成员变量时,没有修饰符,它的访问属性就是默认的,表示它可以被本类及同一包中的其他类访问。除访问权限符外,成员变量还可以被static及final修饰。static和final是非访问修饰符。被static修饰的成员变量称为静态变量。被final修饰的叫最终变量,最终变量的值在程序的整个执行过程中是不会改变的,即Java语言中的符号常量。最终变量通常被说明为static的。变量名的命名必须符合Java标识符的定义。成员变量的初始化成员变量定义后,如果没有赋值,则其初值是它的默认值。例如,byte、short、int和l

46、ong类型的默认值为0,float的默认值为0.0f,double类型为的默认值为0.0,boolean类型的默认值为false,c h a r 类 型 默 认 值为u0000,引用类型默认值为null。如果需要变量具有其他初值,那么可以在定义的同时给变量赋值。publicclassCirclefloatradius=10.0f;floatgetRadius()returnradius;publicclassEx3_2publicstaticvoidmain(Stringargs)Circleci=newCircle();/ci.radius=9.0f;System.out.println(c

47、i.getRadius();在Circle类中,定义成员变量radius的同时赋值为10.0f,即变量的初始化。如果主方法中调用了成员方法getRadius(),又没有对radius重新赋值,则运行结果为10.0f。但是,如果将程序中的注释行释放,则运行结果为9.0f。方法的创建方法操作类所定义的数据,以及提供对数据的访问的代码。创建方法的格式为:第一行为方法头,大括号中的是方法体。方法体可以包含一个或多个语句,每个方法执行一项任务。每个方法只有一个名称,通过使用这个名称,方法才能被调用。修饰符是可选的,与成员变量的修饰符相同,功能类似。abstract、static和final分别指所修饰的

48、方法为抽象方法、静态方法和最终方法。返回值类型是方法返回值的数据类型。若方法不返回任何值,则返回值类型为关键字void。方法的参数列表是可选的,如果没有,说明没有直接调用的参数。参数列表也称为形式参数,简称形参。如果希望方法有返回值,则在方法的最后一条语句使用return,终止方法并返回该方法的调用者。在返回值为void的方法中,如果有return语句,则执行到这条语句后方法会终止。例3.1中的floatarea();publicintgirth();修饰符abstractstaticfinal 返回值类型方法名(参数列表)方法体方法的调用 创建的方法指明了方法的作用,通过调用方法,方法才能发

49、挥它的作用。调用方法的途径有两种:如果方法有返回值,对方法的调用通常就当作处理一个值,通过点.运算符实现。调用格式为:例如,类Triangle的方法setSide(),设置三角形的三边,结果为给变量d1、d2和d3赋值,语句,tri.setSide(a,b,c);意思是对象tri调用方法setSide()。直接使用方法的值,不再返回给另一个变量。程序中输出面积,方法调用可以使用下面语句:System.out.println(tri.area();对象名.方法名成员变量和方法的两种形式类体中定义的成员变量和方法均有两种形式:用static修饰的称为类变量和类方法,也常称之为静态变量和静态方法;未

50、用static修饰的变量和方法称为实例变量和实例方法。类的每一个对象都拥有自己的实例变量,每个对象的变量拥有不同的内存空间,所以每个对象的实例变量也是不同的。实例变量和实例方法是指每个变量和方法唯一的与一个对象相关联,即在创建某个对象时,同时为这个对象创建所有实例变量的副本,关联所有的实例方法。不同的对象对应不同的实例变量副本,即不同的内存空间。静态变量不再重新分配内存,所有的对象共享静态变量,即所有对象的静态变量使用相同的内存空间。当类体被装入内存时,静态方法就被分配了内存单元,同时分配了相应的入口地址,从而静态方法可以被类创建的任何对象调用执行,也可以在未创建对象时直接通过类名调用。对象及

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(高教类课件:Java面向对象程序设计.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|