第7章类.pdf

上传人:侯** 文档编号:95628360 上传时间:2023-08-28 格式:PDF 页数:17 大小:351.28KB
返回 下载 相关 举报
第7章类.pdf_第1页
第1页 / 共17页
第7章类.pdf_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《第7章类.pdf》由会员分享,可在线阅读,更多相关《第7章类.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 92第 7 章 类 什么是类?类有什么用处?为什么它会是面向对象编程的一个典型特征?带着这些问题,本章将会结合大量的实例为读者一一讲解。类是面向对象编程中最基本、也是最重要的特征之一。从本章开始,将介绍如何进行面向对象的程序开发,以及程序开发的过程中,所需要具备的重要思想是什么?编程思想是很多学习编程的人,学习时间长却学不好的一个主要原因。7.1 JDK 5 和 JDK 6 特性 本节介绍什么是 JDK,以及 Java 开发工具集中两个不同的版本。本节的讲解比较简单,希望有兴趣的读者查看其他的相关书籍。7.1.1 什么是 JDK JDK 的意思是 Java 开发工具包(Java Develo

2、pment Kit,JDK),JDK 是 Sun 公司免费提供的 Java 语言工具,是 Java 应用程序开发的基础。通常第三方开发工具“JBuilder9.0”、“IBM VisualAge for Java”等都是基于 JDK 进行开发。7.1.2 JDK 5 的特点 JDK 5 其实就是 JDK1.5,JDK1.5(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,包括泛型、for-else 循环、自动装包/拆包、枚举、可变参数、静态导入。使用这些特性有助于编写更加清晰、精悍、安全的代码。下面简单介绍下这些新特性。?泛型(Generic)C+通过模板技术可以指定集合的元素类型

3、,而Java在1.5之前一直没有相对应的功能。在 C+中,一个集合可以存放任何类型的对象,相应地从集合里面拿对象的时候,也不得不对他们进行强制得类型转换。JDK1.5 引入了泛型,并且允许指定集合里元素的类型,这样可得到强类型在编译时刻进行类型检查的好处。?For-Each 循环。For-Each 循环的加入简化了集合的遍历。?自动装包/拆包(Autoboxing/unboxing)自动装包/拆包大大方便了基本类型数据和其包装类的使用。自动装包就是基本类型自动转为包装类。自动拆包就是包装类自动转为基本类型。在 JDK1.5 之前,总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制解决了问题

4、。?枚举(Enums)JDK1.5 加入了一个全新类型的“类”枚举类型。?可变参数(Varargs)93可变参数的出现,使程序员可以声明一个接受可变参数数目的方法,注意的是可变参数必须是函数声明中的最后一个参数。?静态导入(Static Imports)要使用静态成员(方法和变量),必须给出提供这个方法的类。使用静态导入可以使被导入类的所有静态变量和静态方法,在当前类直接可见,从而使用这些静态成员无需再给出他们的类名。7.1.3 JDK 6 的特点 浏览了 JDK6 的新特性,感觉“Compiler API”的应用有很大空间。JDK6 提供对代码的编译功能,可以实现代码编辑、编译及加载运行,可

5、以在系统运行中动态配置和扩展用户自定义的功能,甚至可以把 Java 语句作为脚本,内嵌到原有系统中扩充功能集。7.1.4 JDK 5 与 JDK 6 的比较 2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号“Mustang(野马)”,跟“Tiger(Java SE 5)”相比,“Mustang”在性能方面有了不错的提升。从与“Tiger”在 API 类库的比较来讲,有了大幅度加强,虽然“Mustang”在 API库方面的新特性显得不太多,但其提供了许多实用和方便的功能:在脚本、Web Service、XML、编译器 AP

6、I 数据库、JMX、网络方面都有不错的新特性和功能加强。随着不断的发展和进步,相信 JDK 6 会有不错的表现。7.2 用比较法阐述类的概念 现实生活中的有一个例子。造房子的砖头有红色的砖、有方砖、有圆砖,此时,在现实生活中各种各样的砖头都可以称作是对象。红色的砖可以称为一个对象,圆砖可以称为一个对象,它们有共同点,但也有不同的方面,这些不同的方面使得它们不可能是同一个对象。然而,砖头就是所有种类的总称,所有的砖都是由它派生而来,所以这个砖可以称为是一个类。类就是模板,也可以说类其实就是创建对象的基地,它能产生很多不同的对象。再举个例,汽车就是一个类,而卡车、轿车等等都是从汽车这个类中派生出来

7、的,也就是说,这些都是属于汽车这个类。其实类是个很灵活的概念,也可以将轿车作为一个类,在轿车这个类中,再创建各种品牌的轿车对象出来,有桑塔纳、红旗、奔驰,而每种轿车都是一个对象。类与对象的关系,有点像一个母亲与子女的关系。本章重点讲述类的知识,至于对象的知识将在下一章给大家详细讲述。7.3 Java 中已有的类 目前,Java 中已经存在了很多由前辈开发出来的类,可以被开发人员直接使用,将这些 94有共同特征的类组合在一起形成了类库。在 Java 中包含大量用于不同目的的类库,这些类库是开发 Java 软件的基础。即使是需要设计自己的类,也有可能使用到 Java 类库中的很多类。可以打开 AP

8、I 文档,查看一些已经存在的类库,能发现 Java 类库非常丰富。鉴于读者都是初学者,所以暂时只介绍一些简单的 API 类库,随着学习的深入,后面读者会接触到更多的类。7.3.1 Java 的数学运算处理类 Math 看到“Math”这个单词,立刻就能明白这个类一定跟数学有关。其包含了丰富的数学函数,可以使用这个类的方法,而不用管内部是如何实现的。通过查看 API 文档,知道“Math”类中的所有方法和字段都是可以直接访问的,在 Java 中,称之为静态方法和静态字段。有关静态方法和静态字段的概念,后面章节有介绍,现在只需要知道,这些方法和字段可以直接去使用。那么如何访问其中的方法和字段呢?因

9、为这些成员是静态成员,所以可通过“类名.方法名称”和“类名.字段”来访问方法和字段。在 Math 类中,由于都是静态成员,就可以使用“Math.方法名称或常量名”。下面把这个类中经常使用到的方法和属性值列举出来,以提供给大家参考。Math 类中包含了两个静态常量:Math.PI-表示数学常量。Math.E-表示和 e 的最可能接近的近似值。Math 类提供了常用的三角函数:Math.sin-表示正弦函数 Math.cos-表示余弦函数 Math.tan-表示正切函数 Math.asin-表示反正弦函数 Math.acos-表示反余弦函数 Math.atan-表示反正切函数 Math.atan2

10、-表示反余切函数 Math 类还提供了幂函数、指数函数和自然对数函数:Math.pow-返回 a 的 b 次方 Math.exp-返回 e 的 a 次方 Math.log-返回 a 的常用对数值 Math 类提供了一个常用的数学运算函数:Math.abs-返回绝对值 Math.sqrt-返回平方根 Math.max-返回最大值 Math.min-返回最小值 Math 类提供了角度与弧度相关的转换运算方法:Math.toDegrees(double angrad)-将弧度转换成角度值 Math toRadians(double angdeg)-将角度值转换成弧度 Math 类提供了四舍五入的运算

11、及截断运算:Math.round(double e)-四舍五入运算 Math.floor(double e)-返回不大于 e 的最大整数 Math 类提供了一个专门用来产生随机数的函数:Math.random()-用来产生随机数的函数 以上是在 Math 类中常用的方法函数。下面将通过举例来熟悉这些函数。95首先通过下列程序代码来熟悉数学运算函数的用法:public class Math1 public static void main(String args)int x=9;int y=16;System.out.println(Math.sqrt(x);-计算 x 的平方根的结果 Syst

12、em.out.println(Math.abs(x);-计算 x 的绝对值的结果 System.out.println(Math.max(x,y);-计算 x 与 y 的最大值 System.out.println(Math.min(x,y);-计算 x 与 y 的最小值 运行结果:3.0 9 16 9 在运用这些函数方法的时候,希望能注意到函数所带的参数,“Math.sqrt”、“Math.abs”带的是一个参数。“Math.max”、“Math.min”带的是两个参数,这一点必须记住。再通过下列程序代码来熟悉四舍五入函数的用法:public class Math1 public stati

13、c void main(String args)double x=4.51;System.out.println(Math.round(x);-返回的是四舍五入的值 System.out.println(Math.floor(x);-返回的是不大于 x 的最大整数 运行结果:5 4.0 通过以上两个例子可以看出,函数方法的使用很简单,关键是要注意其参数。纵观类库,其实就是一个方法和属性的集合。至于类库的学习方法,关键是多练习,只要熟悉了类库中各种方法的使用,也就掌握了类库。7.3.3 测试时间和日期的类-Date 类 下面要介绍另一个比较重要的类:Date 类。Date 类包括了有关日期和时间

14、操作的一些方法。Date 类提供相应的方法,可将日期分解为年、月、日、时、分、秒。Data 类还可以将日期转换成一个字符串,甚至可以执行反向的操作。因为 Math 类中的方法和字段属性都是静态的,所以可以直接使用它。而 Date 类中的方法和字段属性不是静态的,所以不能直接用“类.方法名或字段名”,必须使用“对象名.方法名或字段名”。如何将类变成对象呢?因为类是模板,对象是实物。在 Java 中,从模板中创建一个实物是使用关键字“new”来实现的(在下一章会详细介绍创建对象方面的知识)。针对非静 96态的类或方法,就要使用对象来操作,不能使用类来操作。下面演示如何从类中产生一个对象:new D

15、ate()这个表达式构造了一个日期对象,并把这个对象初始化为当前的日期和时间,其实可以从一个类中,产生多个不同种的对象。Date 类可创建很多种不同的对象,如:Date(int year,int month,int date),Date(int year,int month,int date,int hrs,int min);但是如果在程序中需要将时间显示出来,应该使用什么方法呢?这里有两种方法:第一种方法是将 Date 对象作为一个参数,传给“println”方法。import java.util.Date;public class Math1 public static void main

16、(String args)System.out.println(new Date();运行结果:Fri Jun 29 14:33:30 CST 2007 这个程序代码段是显示当前的日期和时间。它将 Date()作为当前时间日期,然后将此对象传给“println”方法。另一种方法就是使用 Date 类中的一个方法:“toString”(有关这一点在前面已经介绍过),它可以直接将时间日期,按照字符串的形式显示出来。import java.util.Date;public class Math1 public static void main(String args)System.out.print

17、ln(new Date();System.out.println(new Date().toString();运行结果:Fri Jun 29 14:33:30 CST 2007 Fri Jun 29 14:33:30 CST 2007 这个例子将两种方法作了对比,其实从输出结果来看,是一模一样的。只是使用的方法不同而已。下列代码段说明 Date 类中函数的用法:import java.util.Date;public class Math1 public static void main(String args)System.out.println(new Date().getDay();Sy

18、stem.out.println(new Date().getHours();运行结果:5 15 977.3.4 测试日历的类-GregorianCalendar 类 在对 Date 类的介绍中,读者会发现 Date 类所表示的是一个时间点,也就是在创建对象当时的时间点,而这对于进行日期的相关操作及运算,是非常不方便的。为此,前辈们在Java 类库中,为开发者提供了一个方便操作日期的类:GregorianCalendar 类。其实GregorianCalendar 类是 Calendar 类的一个扩展而已,Calendar 类是从总体上描述历法的类。Date 类中也有用于得到日期的方法函数,如

19、“getDay”、“getMonth”等方法函数,但是这些方法已经不被推荐使用了,在程序中尽量不要使用不被推荐(deprecated)的方法函数。相比之下,GregorianCalendar 类拥有更多的对日期操作的方法函数,GregorianCalendar类的常用方法:Public int get(int field)这里的“field”指的 Calendar 类中定义的常数,返回与“field”相关的日期。举个具体的例子:import java.util.*;public class GregorianCalendar public static void main(String arg

20、s)GregorianCalendar gc=new GregorianCalendar();int X=gc.get(Calendar.MONTH);System.out.println(X);运行结果:5“public void set(int field,int value)”将“field”所表示的日期替换成“value”的值,举个具体的例子:import java.util.*;public class GregorianCalendar1 public static void main(String args)GregorianCalendar gc=new GregorianCa

21、lendar();gc.set(Calendar.YEAR,2009);System.out.println(gc.get(Calendar.YEAR);运行结果:2009 下面是有一些有关如何设置系统时间的方法。“public final void set(int year,int month,int date)”“public final void set(int year,int month,int date,int hour,int minute)”“public final void set(int year,int month,int date,int hour,int minut

22、e,int second)”这里的“final”在后面一章会讲述。上面的三个方法函数是指如何设定时间和日期。看下列代码段,就可以明白以上这三个方法函数是什么含义:import java.util.*;public class Math1 public static void main(String args)98 GregorianCalendar gc=new GregorianCalendar();gc.set(2009,06,18);System.out.println(gc.get(Calendar.YEAR);System.out.println(gc.get(Calendar.MO

23、NTH);System.out.println(gc.get(Calendar.DATE);运行结果:2009 6 18 在上面的例子里,先通过“set”方法设置年份为 2009 年,然后设置日期为 6 月,最后设置日期是 18 号,然后再通过“get”访问器的方法取出值。7.3.5 日历处理的实例解析 对于月历类来说,最重要的参数是年、月、日、小时、分、秒、毫秒,所以 Calendar类提供了这些参数:YEAR(年)、MONTH(月)、DATE(日)、HOUR(小时)、MINUTE(分钟)、SECOND(秒)、MILLISECOND(毫秒)。另外一年还有十二个月的参数,所以 Calendar

24、 类提供了:JANUARY(一月)、FEBRUARY(二月)、MARCH(三月)、APRIL(四月)、MAY(五月)、JUNE(六月)、JULY(七月)、AUGUST(八月)、SEPTEMBER(九月)、OCTOBER(十月)、NOVEMBER(十一月)、DECEMBER(十二月)。依次表示 1-12 个月份,需要注意的是它们从零开始计算的。例如:get(Calendar.MONTH)+1 另外,一周的每一天使得 Calendar 类提供了:SUNDAY(=1)、MONDAY(=2)、TUESDAY(=3)、WEDNESDAY(=4)、THURSDAY(=5)、FRIDAY(=6)、SATUR

25、DAY(=7)。如果获取星期或改变星期时使用:DAY_OF_WEEK。如果表示上午/下午:AM_PM 上面介绍了很多常用函数和属性常量,下面看一个实例。import java.util.*;public class calendar1 public static void main(String args)GregorianCalendar gc=new GregorianCalendar();String now=gc.get(Calendar.YEAR)+年+(gc.get(Calendar.MONTH)+1)+月+gc.get(Calendar.DATE)+日+gc.get(Calend

26、ar.HOUR)+时+gc.get(Calendar.MINUTE)+分+gc.get(Calendar.SECOND)+秒;System.out.println(当前时间是:+now);运行结果 99当前时间是:2007 年 7 月 12 日 4 时 30 分 12 秒 这个程序段很简单,对这个类中每一种函数,都展示了其用法。下面来编写一个稍微复杂的实例,然后来仔细分析这个程序段的编程思路。有个人的生日是阳历 7 月 20 日,请输出 20072020 年之间,这个人每年的生日究竟是星期几。import java.util.*;public class calendar2 public st

27、atic void main(String args)GregorianCalendar gc=new GregorianCalendar();final char kor_week=日,一,二,三,四,五,六;for(int i=2007;i=2020;i+)gc.set(i,Calendar.JULY,20);char week=kor_weekgc.get(Calendar.DAY_OF_WEEK)-1;System.out.println(i+年的生日是星期+week);运行结果 2007 年的生日是星期五 2008 年的生日是星期日 2009 年的生日是星期一 2010 年的生日是星

28、期二 2011 年的生日是星期三 2012 年的生日是星期五 2013 年的生日是星期六 2014 年的生日是星期日 2015 年的生日是星期一 2016 年的生日是星期三 2017 年的生日是星期四 2018 年的生日是星期五 2019 年的生日是星期六 2020 年的生日是星期一 这个程序的具体代码,很容易读懂。在此,需要讲述的是一个编程的思路问题。当拿到这个程序的要求时,首先分析是要求输出“20072020”年之间每年的生日究竟是星期几,这时就要考虑使用循环语句。通过“set”函数将年份依次改为 20072020 年,这样就可以通过“get”函数返回此年份月份和日子到底是星期几,如果是这

29、样分析,编写它就不难了,剩下的只不过是一些细节问题。7.4 用实例分析设计一个类的流程 下面将会通过一个综合实例,来为读者总结本章中的一些比较重要的知识,从而为读者总结一下编程思想。1007.4.1 如何在现实程序设计中提取一个类 在现实程序开发过程中,需要根据客户提供的要求来编写程序。在编写程序之前,要分析客户的要求,这是很关键的一步。针对客户的要求,程序员要学会从客户要求中提取出类,然后根据类再创建对象,在对象中规划出方法和属性值,最后,由这些方法和属性值共同完成客户提供的要求。下面举一个实例,通过这个实例来证明以上所讲述的步骤。对于一个班的学生,开发一个学生信息的程序段。其要求如下所示:

30、(1)男生有 10 名,女生有 15 名。请输出他们的姓名和性别、学号。(2)其中张杰是男生,也是班长,请输出其信息。(3)对所有学生的成绩信息进行输出。(4)通过班上的成绩,选出最好的学生和最差的学生。这个实例看起来有点复杂。其实仔细的分析应该不是很难。编写程序最关键是程序员的思路,思路清晰了,代码自然很好解决,下面看看如何分析这个实例。对于这个实例,从所有的要求看来,都是围绕着学生,所以提取一个类,就是学生类。如下:class student private name;private code;private sexy;private duty;private achievement;这个

31、类中的变量是根据实例要求而定义的,这些变量就是类中的属性。再来分析实例中需要程序员做什么事情,而要做的事情就是类中的方法。观察以上的 4 个要求,主要需要做的事情是输出和排序,那么类的方法中必须要有输出方法和排序方法。对于第一个要求输出的信息。可以编写下列方法函数。Void print()下面再来观察第二个要求、第三个要求,其实也是围绕着学生信息这个数组来输出的。而第四个要求中,要求将所有的数据进行排序,选择出最大的数据和最小的数据。好了,现在可以开始编写程序了,先来看看此程序的流程图。101学生类学生对象1学生对象2学生对象3设置器和访问器设置器和访问器设置器和访问器将数据输出 图 7.1

32、有关类的创建的实例 看下面的代码。/这是一个学生类/通过带参数的构造器来构造对象/通过设置器来设置对象的属性/通过访问器来访问对象的属性/tostring 是一个将对象以字符串的形式输出的方法 public class student String name=;String code=;String sexy=;String duty=;double achievement;public student(String name)this.name=name;void set(String name,String code,String sexy,String duty)this.name=na

33、me;this.code=code;this.sexy=sexy;this.duty=duty;public String getname()return name;public String getcode()return code;public String getsexy()return sexy;public String getduty()102 return duty;public void setachi(double achievement)this.achievement=achievement;public double getachi()return achievemen

34、t;public void print()System.out.println(学生+name+的成绩是:+achievement);public String tostring()String infor=学生姓名:+name+;+学生学号:+code+;+学生性别:+sexy+;+学生职务:+duty;return infor;/这是主运行程序/构造出 25 个对象。使用带参数的构造器来构造。/再使用设置器来设置对象属性。/使用 tostring 方法来将对象信息输出 public static void main(String args)/构造出学生对象 student st1=new

35、student(王浩);student st2=new student(李敏);student st3=new student(李杰);student st4=new student(王杰);student st5=new student(王超);student st6=new student(赵浩);student st7=new student(钱浩);student st8=new student(王松);student st9=new student(朱涛);student st10=new student(张杰);student st11=new student(王敏);studen

36、t st12=new student(孙洁);student st13=new student(赵丽);student st14=new student(王丽);student st15=new student(钱珍);student st16=new student(王珍);student st17=new student(王萍);student st18=new student(钱萍);student st19=new student(王燕);student st20=new student(赵燕);student st21=new student(孙燕);student st22=new

37、 student(孙丽);student st23=new student(林丽);student st24=new student(张丽);student st25=new student(郑丽);/构造一个学生类的对象数组,将所有的对象放到数组内 103 studentst=new studentst1,st2,st3,st4,st5,st6,st7,st8,st9,st10,st11,st12,st13,st14,st15,st16,st17,st18,st19,st20,st21,st22,st23,st24,st25;/通过设置器对几个对象进行赋值 st1.set(王浩,1,男,班员

38、);st2.set(李敏,2,男,班员);st3.set(李杰,3,男,班员);st4.set(王杰,4,男,班员);st5.set(王超,5,男,班员);st6.set(赵浩,6,男,班员);st7.set(钱浩,7,男,班员);st8.set(王松,8,男,班员);st9.set(朱涛,9,男,班员);st10.set(张杰,10,男,班长);st11.set(王敏,11,女,班员);st12.set(孙洁,12,女,班员);st13.set(赵丽,13,女,班员);st14.set(王丽,14,女,班员);st15.set(钱珍,15,女,班员);st16.set(王珍,16,女,班员)

39、;st17.set(王萍,17,女,班员);st18.set(钱萍,18,女,班员);st19.set(王燕,19,女,班员);st20.set(赵燕,20,女,班员);st21.set(孙燕,21,女,班员);st22.set(孙丽,22,女,班员);st23.set(林丽,23,女,班员);st24.set(张丽,24,女,班员);st25.set(郑丽,25,女,班员);System.out.println(st1.tostring();System.out.println(st2.tostring();System.out.println(st3.tostring();System.o

40、ut.println(st4.tostring();System.out.println(st5.tostring();System.out.println(st6.tostring();System.out.println(st7.tostring();System.out.println(st8.tostring();System.out.println(st9.tostring();System.out.println(st10.tostring();System.out.println(st11.tostring();System.out.println(st12.tostring()

41、;System.out.println(st13.tostring();System.out.println(st14.tostring();System.out.println(st15.tostring();System.out.println(st16.tostring();System.out.println(st17.tostring();System.out.println(st18.tostring();System.out.println(st19.tostring();System.out.println(st20.tostring();System.out.println(

42、st21.tostring();System.out.println(st22.tostring();System.out.println(st23.tostring();System.out.println(st24.tostring();104 System.out.println(st25.tostring();/通过设置器给几个对象进行赋值 st1.setachi(87.5);st2.setachi(98);st3.setachi(78);st4.setachi(90);st5.setachi(84);st6.setachi(78);st7.setachi(91);st8.setach

43、i(99.5);st9.setachi(64);st10.setachi(100);st11.setachi(98);st12.setachi(76);st13.setachi(88);st14.setachi(64);st15.setachi(97);st16.setachi(68);st17.setachi(90);st18.setachi(99);st19.setachi(77);st20.setachi(78);st21.setachi(67);st22.setachi(99);st23.setachi(97.5);st24.setachi(92);st25.setachi(88);s

44、t1.print();st2.print();st3.print();st4.print();st5.print();st6.print();st7.print();st8.print();st9.print();st10.print();st11.print();st12.print();st13.print();st14.print();st15.print();st16.print();st17.print();st18.print();st19.print();st20.print();st21.print();st22.print();st23.print();st24.print(

45、);st25.print();/通过循环语句对数组元素进行排序 105 for(int i=0;ist.length;i+)for(int j=0;jst.length;j+)/通过比较两个元素的大小,如果前面比后面元素大的话,进行排序 if(sti.achievementstj.achievement)student x;x=stj;stj=sti;sti=x;System.out.println(成绩最好的是:+st24.name+,成绩是:+st24.achievement);System.out.println(成绩最差的是:+st0.name+,成绩是:+st0.achievemen

46、t);运行结果:学生姓名:王浩;学生学号:1;学生性别:男;学生职务:班员 学生姓名:李敏;学生学号:2;学生性别:男;学生职务:班员 学生姓名:李杰;学生学号:3;学生性别:男;学生职务:班员 学生姓名:王杰;学生学号:4;学生性别:男;学生职务:班员 学生姓名:王超;学生学号:5;学生性别:男;学生职务:班员 学生姓名:赵浩;学生学号:6;学生性别:男;学生职务:班员 学生姓名:钱浩;学生学号:7;学生性别:男;学生职务:班员 学生姓名:王松;学生学号:8;学生性别:男;学生职务:班员 学生姓名:朱涛;学生学号:9;学生性别:男;学生职务:班员 学生姓名:张杰;学生学号:10;学生性别:男

47、;学生职务:班长 学生姓名:王敏;学生学号:11;学生性别:女;学生职务:班员 学生姓名:孙洁;学生学号:12;学生性别:女;学生职务:班员 学生姓名:赵丽;学生学号:13;学生性别:女;学生职务:班员 学生姓名:王丽;学生学号:14;学生性别:女;学生职务:班员 学生姓名:钱珍;学生学号:15;学生性别:女;学生职务:班员 学生姓名:王珍;学生学号:16;学生性别:女;学生职务:班员 学生姓名:王萍;学生学号:17;学生性别:女;学生职务:班员 学生姓名:钱萍;学生学号:18;学生性别:女;学生职务:班员 学生姓名:王燕;学生学号:19;学生性别:女;学生职务:班员 学生姓名:赵燕;学生学号

48、:20;学生性别:女;学生职务:班员 学生姓名:孙燕;学生学号:21;学生性别:女;学生职务:班员 学生姓名:孙丽;学生学号:22;学生性别:女;学生职务:班员 学生姓名:林丽;学生学号:23;学生性别:女;学生职务:班员 学生姓名:张丽;学生学号:24;学生性别:女;学生职务:班员 学生姓名:郑丽;学生学号:25;学生性别:女;学生职务:班员 学生王浩的成绩是:87.5 学生李敏的成绩是:98.0 学生李杰的成绩是:78.0 学生王杰的成绩是:90.0 学生王超的成绩是:84.0 学生赵浩的成绩是:78.0 学生钱浩的成绩是:91.0 学生王松的成绩是:99.5 学生朱涛的成绩是:64.0

49、106学生张杰的成绩是:100.0 学生王敏的成绩是:98.0 学生孙洁的成绩是:76.0 学生赵丽的成绩是:88.0 学生王丽的成绩是:64.0 学生钱珍的成绩是:97.0 学生王珍的成绩是:68.0 学生王萍的成绩是:90.0 学生钱萍的成绩是:99.0 学生王燕的成绩是:77.0 学生赵燕的成绩是:78.0 学生孙燕的成绩是:67.0 学生孙丽的成绩是:99.0 学生林丽的成绩是:97.5 学生张丽的成绩是:92.0 学生郑丽的成绩是:88.0 成绩最好的是:张杰,成绩是:100.0 成绩最差的是:朱涛,成绩是:64.0 这个程序段的主要思路如下所示:?先提取一个类即学生类。?根据学生类

50、,创建对象。此时每个同学就是一个学生类的对象。?编写设置器和访问器。(后面会详细讲述它)?输出学生信息。?通过循环语句和判断语句对学生成绩进行排序。了解上面的思路后,整个程序就很清晰了。剩下的就是对代码的处理。7.4.2 设置器和访问器 在上面的程序段中,出现过“set”和“get”函数,那么这些函数起着什么作用?在 Java程序语言中把“set”函数称为设置器,把“get”函数称为访问器。访问器只是查看对象的状态或者返回对象的属性值的。访问器有以下特点:?方法声明部分有返回值类型。?方法声明没有参数。?方法体内有返回语句。(2)设置器主要是完成某个对象属性值的赋值功能。设置器有以下特点:?方

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

当前位置:首页 > 应用文书 > 工作报告

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

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