【教学课件】第3讲使用类和对象编程(一).ppt

上传人:wuy****n92 文档编号:78999878 上传时间:2023-03-19 格式:PPT 页数:26 大小:412.97KB
返回 下载 相关 举报
【教学课件】第3讲使用类和对象编程(一).ppt_第1页
第1页 / 共26页
【教学课件】第3讲使用类和对象编程(一).ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《【教学课件】第3讲使用类和对象编程(一).ppt》由会员分享,可在线阅读,更多相关《【教学课件】第3讲使用类和对象编程(一).ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第3讲 使用类和对象编程(一)c基本数据类型和表达式的基本数据类型和表达式的3个实例个实例c创建类创建类c成员变量与方法成员变量与方法 目标理解类和对象的基础知识 掌握类和对象的创建与应用实例1请将一个四位正整数的个、十、百、千位4个数的和求出,并分别输出这四个数及它们的和。分析:采用自顶向下、逐步求精的方法,先给出总的框架,再分析问题,然后逐步细化。1总体步骤(1)输入一个四位数:3587;(2)分别求出个、十、百、千位,并将这四个数相加;(3)输出四个数及和。2逐步细化及分析定义int变量s,并赋值3587;定义其它变量根据数学运算方便,从高位开始,先分别求出四位上的数,再进行相加。千位=

2、s/1000,百位=(s-千位*1000)/100,十位=(s%100)/10,个位=s%10,和=千位+百位+十位+个位class Ex2_10 public static void main(String args)int a,b,c,d,add;int s=3587;a=s/1000;b=(s-a*1000)/100;c=(s%100)/10;d=s%10;add=a+b+c+d;(“千位数是”+a+“t 百位数是”+b);(“十位数是”+c+“t 个位数是”+d);(“这个四位”+s+“的各位数字的和是:”+add);实例2从键盘输入一个整数,进行除法运算分析:从键盘输入一个整数,应用

3、命令行参数的方法可以获得。然而进行除法运算时,由于除数可能为零,会产生运行错误。需采用异常处理的方法解决。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:);i=Integer.parseInt(args0);/从命令行接收一个数 try int j=10

4、/i;System.out.println(The input is+i+j=+j);catch(ArithmeticException e)System.out.println(the exception is:+e);已知年利率、贷款年数和贷款金额,计算月偿还金额和总偿还金额,并将它们显示。分析:1给出月偿还金额和总偿还金额的公式月偿还金额=(贷款金额*月利率)/(1-1/(1+月利率)贷款年数*12)总偿还金额=月偿还金额*年数*122由第1步看到,只要知道月利率即可求出结果。而已知年利率,因此,月利率=年利率/12。3输入其他参数,代入第1步公式,计算出结果,最后输出结果。实例3 pu

5、blic 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:);years=DefInput.readInt();System.out.println(Enter load a

6、mmount,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);程序中的定义的变量都必须进行说明,并根据存储的数据定义程序中的定义的变量都必须进行说明,并根据存储的数据定义合适的类

7、型。例如,年份为整型,金额定义为双精度型。从键合适的类型。例如,年份为整型,金额定义为双精度型。从键盘上读入数据用盘上读入数据用DefInput类的方法类的方法readInt()和和readDouble()。但。但要保证要保证DefInput类与类与Ex2_12.class类在一个目录下,才能这样用类在一个目录下,才能这样用上面两个方法。上面两个方法。import java.io.*;public class DefInput public static String readString()BufferedReader br=new BufferedReader(new InputStrea

8、mReader(System.in),1);String string=“”;try string=br.readLine();catch(IOException ex)System.out.println(ex);return string;public static int readInt()return Integer.parseInt(readString();public static double readDouble()return Double.parseDouble(readString();创建类(引例)例题2.1“已知三角形的三条边,计算它的周长与面积。”在其逐步求精的过

9、程中,并没有很好的体现面向对象的特点,现将其作如下的修改。分析:可以用逐步求精的方法逐步逼近问题的解决方案,Java程序是由类组成的,可以将问题转化为“设计一个计算三角形周长与面积的类”。引例求精分析(1)定义一个计算三角形周长与面积的类Triangleu引入标准类u声明类u确定三角形属性(定义三条边)u计算周长(定义方法side)u计算面积(定义方法area)(2)定义主类u引用标准类u声明主类及main方法u定义三条边的具体值u调用计算周长方法u调用计算面积方法u输出结果引例代码Ex3_1 类的定义类是一种复杂数据类型,定义对象的结构。将属性和方法封装在一个类中,在Java类中,属性以数据

10、来描述,方法用来实现对象的行为。类的基本格式如下:class 类名/类说明 /花括号中为类体部分 数据值表示存储在每个对象里的结果,而方法则表示对象可以提供的功能。数据和方法统称为类的成员,数据成员也称为实例变量。class是关键字,用来定义类,命名与标识符的命名一致。类名的单词首字母都大写,类名最好能体现类的功能或作用。class People int age;/数据域数据域 String name;/数据域数据域 int aged()/方法方法 class Desk int length,width,height;float price;float cubage()Desk类的属性是len

11、gth、width、height以及price,方法cubage()应用变量length、width、height的数值计算体积。类的定义举例 类声明的完整格式修饰符 class extends implements upublic:说明该类为公共类,它可以被本类和其他任何类及成员方法所使用。Java程序中至多有一个类是public类。udefault:如果类名前不用修饰符,指的就是默认访问情形,只能被本类和同一个包中的其他类、接口及成员方法引用。uabstract:用该修饰符修饰的类称为抽象类。它是一种没有具体对象的概念类,是它所有公共子类的公共属性集合。ufinal:用该修饰符修饰的类不能

12、有子类,称为最终类。成员变量的定义成员变量位于类体中,在方法定义之外所定义的变量,方法内定义的变量称为方法变量或局部变量。成员变量和方法变量可以是简单类型,也可以是类等引用类型。成员变量定义的格式为:访问权限符 static final 类型 变量名1,变量名2,例如,类ExampleClass中定义了成员变量d、i和j,在类体的方法method()中定义的变量f、g是方法变量。class ExampleClass public double d;/成员变量d,i,j private int i,j;method()float f,g;/方法变量f,g 成员变量访问权限符public:由此修饰

13、的成员变量称为公共变量,可以被程序中任何类访问。protected:由此修饰的成员变量可以被本类、同一包中该类的子类及其他包中的该类的子类访问。private:由此修饰的成员变量只能被本类访问。用private修饰成员变量可以实现数据隐藏机制default:如果定义成员变量时,没有修饰符,它的访问属性就是默认的,表示它可以被本类及同一包中的其他类访问。除访问权限符外,成员变量还可以被static及final修饰。static 和final是非访问修饰符。被static修饰的成员变量称为静态变量。被final修饰的叫最终变量,最终变量的值在程序的整个执行过程中是不会改变的,即Java语言中的符号

14、常量。最终变量通常被说明为static的。static和final 成员变量的初始化1.成员变量定义后,如果成员变量定义后,如果没有赋值,则其初值是它没有赋值,则其初值是它的默认值。例如的默认值。例如byte、short、int和和long类型的默类型的默认值为认值为0,float的默认值为的默认值为0.0f,double类型为的默认类型为的默认值为值为0.0,boolean类型的默类型的默认值为认值为false,char 类型默类型默认值为认值为u0000,引用,引用类型默认值为类型默认值为null2.如果需要变量具有其他如果需要变量具有其他初值,那么可以在定义的初值,那么可以在定义的同时给

15、变量赋值同时给变量赋值public class Circle float radius=10.0f;float getRadius()return radius;public class Ex3_2 public static void main(String args)Circle ci=new Circle();/ci.radius=9.0f;System.out.println(ci.getRadius();方法的创建方法操作类所定义的数据,以及提供对数据的访问的代码.创建方法的格式为:修饰符abstractstaticfinal 返回值类型 方法名(参数列表)/方法头 方法体 方法体可

16、以包含一个或多个语句,每个方法执行一项任务。每个方法只有一个名称,通过使用这个名称,方法才能被调用。修饰符是可选的,与成员变量的修饰符相同,功能类似。abstract、static和final分别指所修饰的方法为抽象方法、静态方法和最终方法。修饰符abstractstaticfinal 返回值类型 方法名(参数列表)/方法头 方法体 返回值类型是方法返回值的数据类型。若方法不返回任何值,则返回值类型为关键字void。方法的参数列表是可选的,如果没有,说明没有直接调用的参数。参数列表也称为形式参数,简称形参。如果希望方法有返回值,则在方法的最后一条语句使用return,终止方法并返回该方法的调用

17、者。在返回值为void的方法中,如果有return语句,则执行到这条语句后方法会终止。方法的创建(续)方法的调用创建的方法指明了方法的作用,通过调用方法,方法才能发挥它的作用。调用方法的途径有两种:(1)如果方法有返回值,对方法的调用通常就当作处理一个值,通过点.运算符实现。u调用格式为:对象名.方法名(参数列表)u例如,类Triangle的方法setSide(),设置三角形的三边,结果为给变量d1、d2和d3赋值,语句 tri.setSide(a,b,c);意思是对象tri调用方法setSide()。(2)直接使用方法的值,不再返回给另一个变量。System.out.println(tri.

18、area();变量名成员变量和方法的两种形式类体中定义的成员变量和方法均有两种形式:u用static修饰的称为类变量和类方法,也常称之为静态变量和静态方法;u未用static修饰的变量和方法称为实例变量和实例方法。类的每一个对象都拥有自己的实例变量,每个对象的变量拥有不同的内存空间,所以每个对象的实例变量也是不同的。对象占用内存图示Triangle t1=new Triangle();Triangle t2=new Triangle();ci实例变量实例方法sj实例变量实例方法静态变量静态方法实例变量和实例方法是指每个变量和方法唯一的与一个对象相关联,即在创建某个对象时,同时为这个对象创建所有实例变量的副本,关联所有的实例方法。不同的对象对应不同的实例变量副本,即不同的内存空间。静态变量不再重新分配内存,所有的对象共享静态变量,即所有对象的静态变量使用相同的内存空间。当类体被装入内存时,静态方法就被分配了内存单元,同时分配了相应的入口地址,从而静态方法可以被类创建的任何对象调用执行,也可以在未创建对象时直接通过类名调用。成员变量和方法的两种形式(续)小结基本数据类型和表达式的3个实例类的定义对象的创建成员变量和成员方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁