福建农林大学Java实验二.doc_第1页
福建农林大学Java实验二.doc_第2页
福建农林大学Java实验二.doc_第3页
福建农林大学Java实验二.doc_第4页
福建农林大学Java实验二.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二 类与对象一 实验目的1 了解类的成员设计2. 掌握类与对象的关系3. 掌握继承的概念;二 知识要点1类类由成员变量(也称属性)和成员方法组成。属性包括变量和final变量(常量),方法包括构造方法和一般方法。习惯按照如下方式排列类中的成员:class Order / final 变量(常量)/ 变量/ 构造方法/ 一般方法类的属性一般定义为private,而将类的方法定义为public。2对象的创建(1)类是创建对象的模板,而对象是类的实例。创建对象的格式如下:引用变量 = new 构造方法(参数)(2)构造方法: 构造方法的名称必须与类名同名;构造方法没有返回类型。 一个类可提供多个构造方法,这些方法的参数不同。 系统自动调用参数匹配的构造方法初始化一个对象。 如果程序中未提供构造方法,系统自动提供空的无参构造方法。 三 实验内容1创建5个学生对象给一个学生数组赋值,每个学生属性包括:学号、姓名、年龄。请根据【模版一】,将【代码1】到【代码6】替换为Java程序代码,以实现如下要求:(1)将学生按学号排序输出;(2)给所有学生年龄加1;(3)统计大于20岁的学生人数。(4)输出结果,如图1所示: 图 1 【模版一】public class Student 【代码1】/定义Student类的成员变量/定义一个output方法,该方法输出学生数组的所有元素static void output(Student s) for (int i=0;is.length;i+) System.out.println(si); /定义toString方法。输出一个对象时,会自动调用对象的toString()方法。 public String toString( ) 【代码2】 【代码3】/重载Student类的构造函数 public static void main(String args) Student s1 = new Student(3,18,Lily); Student s2 = new Student(1,21,Suan); Student s3 = new Student(33,20,John); Student s4 = new Student(13,20,Lucy); Student s5 = new Student(8,17,Jack); Student s = s1,s2,s3,s4,s5; System.out.println(班级学生名单如下:); output(s); /第1次调用output方法输出数组【代码4】/将学生按照学号排序 System.out.println(按学号由小到大排序.); output(s); /第2次调用output方法输出数组 【代码5】/将所有学生年龄加1 System.out.println(所有学生年龄加1后.); output(s); /第3次调用output方法输出数组【代码6】 / 统计大于20岁的学生个数System.out.println(大于20岁人数是: + count);2已知链表的每个结点定义如下: Node int data; Node next; 请根据【模版二】,将【代码1】到【代码】替换为Java代码,以实现如下要求:(1)创建一个初始为10个结点的单向链表,结点数据用随机函数产生。(2) 输出该链表:(3)在链表的首部增加一个数据为50的结点,并输出链表。(4)在链表的尾部增加一个数据为50的结点,并输出链表。(5)输出结果,如图2所示: 图 2 【模版二】class Node int data; /数据域 Node next; /链域,存放下一个结点的引用public class Link Node header ; /* 构建含n个结点的链表。链表的头用header指示 */public Link(int n) Node p,q; / p为链表中当前的最后一个结点,q为要新加的结点 header=new Node(); /创建首结点header.data=(int)(Math.random()*100); /给首结点的data域赋值 p=header; for (int k=1;k=n-1;k+) 【代码1】/创建除了首结点之外的其他结点 /* 输出链表的所有元素的数据 */ void outputLink() 【代码2】/outputLink()的实现代码 public static void main(String a) 【代码3】/创建含10个元素的链表x.outputLink ();/输出链表 【代码4】 /创建一个数据为50的新结点,放到链表的头部 x.outputLink(); /输出链表【代码5】/至链表的尾部,在尾部增加一个data值为50的新结点x.outputLink(); /输出链表 四 实验学时: 2学时class Node int data; /数据域 Node next; /链域,存放下一个结点的引用public class Link Node header ; /* 构建含n个结点的链表。链表的头用header指示 */public Link(int n) Node p,q; / p为链表中当前的最后一个结点,q为要新加的结点 header=new Node(); /创建首结点header.data=(int)(Math.random()*100); /给首结点的data域赋值 p=header; for (int k=1;k); p=p.next; System.out.println(); public static void main(String a) /创建含10个元素的链表 int n=10; Link x=new Link(10); x.outputLink ();/输出链表 /创建一个数据为50的新结点,放到链表的头部 Node p50=new Node(); p50.data=50; p50.next=x.header; x.header=p50; x.outputLink(); /输出链表/至链表的尾部,在尾部增加一个data值为50的新结点 Node p=x.header,pup=null,pdown; pdown = new Node(); pdown.data=50; while (p!=null) pup=p; p=p.next; pup.next=pdown; x.outputLink(); /输出链表 public class Student/定义Student类的成员变量 int num; String name; int age;/定义一个output方法,该方法输出学生数组的所有元素 static void output(Student s) for (int i=0;is.length;i+) System.out.println(si);/定义toString方法。输出一个对象时,会自动调用对象的toString()方法。 public String toString( ) return 学号:+num+ ,姓名:+name+ ,年龄: +age; /重载Student类的构造函数 Student(int num,int age,String name) this.age=age; =name; this.num=num; public static void main(String args) Student s1 = new Student(3,18,Lily); Student s2 = new Student(1,21,Suan); Student s3 = new Student(33,20,John); Student s4 = new Student(13,20,Lucy); Student s5 = new Student(8,17,Jack); Student s = s1,s2,s3,s4,s5; System.out.println(班级学生名单如下:); output(s); /第1次调用output方法输出数组 /将学生按照学号排序 Student st; for (int i=0;is.length-1;i+) for (int j=i+1;jsj.num) st=si;si=sj;sj=st; System.out.println(按学号由小到大排序.); output(s); /第2次调用output方法输出数组 /将所有学生年龄加1 fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论