JAVA例7.8-7.14及实验26-31.docx_第1页
JAVA例7.8-7.14及实验26-31.docx_第2页
JAVA例7.8-7.14及实验26-31.docx_第3页
JAVA例7.8-7.14及实验26-31.docx_第4页
JAVA例7.8-7.14及实验26-31.docx_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

例7.8 将圆柱体类Cylinder里的变量pi和num声明为静态变量编写程序如下:/filename:App7_8.java 静态变量的使用class Cylinder /定义类Cylinderprivate static int num=0; /声明num为静态变量private static double pi=3.14; /声明pi为静态变量,并赋初值private double radius;private int height;public Cylinder(double r,int h) /定义有两个参数的构造方法radius=r;height=h;num+; /当构造方法Cylinder()被调用时,num便加1public void count() /当count()方法用来显示目前创建对象的个数System.out.print(创建了+num+个对象:);double area()return pi*radius*radius;double volume()return area()*height;public class App7_8 /主类public static void main(String args)Cylinder volu1=new Cylinder(2.5,5);volu1.count();System.out.println(圆柱1的体积=+volu1.volume();Cylinder volu2=new Cylinder(1.0,2);volu2.count();System.out.println(圆柱2的体积=+volu2.volume();运行结果如下:例7.9 利用圆柱体类Cylinder来介绍静态方法的使用 程序编写如下:/filename:App7_9.java 静态方法的使用class Cylinder /定义类Cylinderprivate static int num=0; private static double pi=3.14; private double radius;private int height;public Cylinder(double r,int h) radius=r;height=h;num+; /当构造方法Cylinder()被调用时,num便加1public static void count() /当count()为静态方法System.out.println(创建了+num+个对象);double area()return pi*radius*radius;double volume()return area()*height;public class App7_9 /主类public static void main(String args)Cylinder.count();Cylinder volu1=new Cylinder(2.5,3);volu1.count();System.out.println(圆柱1的体积=+volu1.volume();Cylinder volu2=new Cylinder(1.0,2);Cylinder.count();System.out.println(圆柱2的体积=+volu2.volume();运行结果如下: 例7.10创建圆柱体类Cylinder,并对该类生成的对象进行赋值运算。/filename App7_10.javaclass Cylinder /定义类Cylinderprivate static double pi=3.14;private double radius;private int height;public Cylinder(double r,int h)radius=r;height=h;public void setCylinder(double r,int h)radius=r;height=h;double volume()return pi*radius*radius*height;public class App7_10 /主类public static void main(String args)Cylinder volu1,volu2; /声明volu1,volu2两个引用型变量volu1=new Cylinder(2.5,5); /创建对象,并将volu1指向它System.out.println(圆柱1的体积=+volu1.volume();volu2=volu1; /将volu1赋值给volu2,volu2也指向了该对象volu2.setCylinder(1.0,2); /重新设置圆柱的底半径和高System.out.println(圆柱2的体积=+volu1.volume();程序运行结果及其分析:在该例的主方法main()中,声明了volu1,volu2两个Cylinder类型的变量,但只创建了一个对象volu1。对于volu2,使用了赋值语句volu2=volu1,将两个不同名的引用变量指向同一个对象。故通过任一个引用变量对对象进行修改,另一个引用变量所指向的对象内容也会随之更改。例7.11以圆柱体类Cylinder的对象为参数进行方法调用,并说明对象的比较。/filename App7_11.javaclass Cylinder /定义类Cylinderprivate static double pi=3.14;private double radius;private int height;public Cylinder(double r,int h)radius=r;height=h;public void compare(Cylinder volu) /以对象作为方法的参数if(this=volu) /判断this与volu是否指向同一对象System.out.println(这两个对象相等);elseSystem.out.println(这两个对象不相等);public class App7_11 /主类public static void main(String args)Cylinder volu1=new Cylinder(1.0,2);Cylinder volu2=new Cylinder(1.0,2);Cylinder volu3=volu1;pare(volu2); /调用compare(),比较volu1与volu2是否相等pare(volu3); /调用compare(),比较volu1与volu3是否相等程序运行结果及其分析:在该例中,Cylinder类的compare()方法接收的参数是对象,并用if(this=volu)语句判断两个引用变量是否相等。在主方法main()中,声明了三个引用变量volu1,volu2和volu3,并且用相同的实参创建了两个对象volu1和volu2。然而volu1与volu2是两个彼此独立的对象,是两个占据不同内存空间地址的不同对象。引用变量volu1与volu2的值分别是这两个对象在内存中的首地址,显然它们是不相等的;而volu1与volu3是指向同一个对象的两个变量,它们的值是同一对象在内存中的首地址,故两者相等。例7.12创建个人类Person,在该类中定义一个以对象作为返回值的方法compare()。/filename App7_12.javaclass Person /定义类Personprivate String name;private int age;public Person(String name,int age)=name;this.age=age;public Person compare(Person p) /返回值的类型为对象if(this.agep.age)return this; /返回值调用该方法的对象elsereturn p; /返回参数对象public class App7_12public static void main(String args)Person per1=new Person(张三,20);Person per2=new Person(李四,21);Person per3;per3=pare(per2);if(per3=per1)System.out.println(张三年龄大);elseSystem.out.println(李四年龄大);程序运行结果及其分析:该程序是通过比较两个对象的成员变量age的大小,来返回age的值较大的对象。例7.13对象数组的应用。以个人类Person为类型,创建数组。/filename App7_13.javaclass Personprivate String name;private int age;public Person(String name,int age)=name;this.age=age;public void show()System.out.println(姓名:+name+年龄:+age);public class App7_13public static void main(String args)Person per; /声明类类型的数据per=new Person3; /用new运算符为数组分配内存空间per0=new Person(张三,20); /用new运算符创建新对象,并分配给数组元素per1=new Person(李四,21);per2=new Person(王二,19);per2.show(); /利用对象per2调用show()方法per0.show();程序运行结果及其分析:在主方法main()中,定义了包含3个元素的数组per,其类型为Person类类型,即数组元素是Person类型的变量,所以程序中分别用数组元素指向新建对象的内存地址。用不同的对象调用相应的show()方法,则显示出相应对象的成员数据。例7.14以对象组作为参数传递给方法,返回对象数组中最小的成员变量。/filename App7_14.javaclass Personprivate String name;private int age;public Person(String name,int age)=name;this.age=age;public static int minAge(Person p) /以对象数组作为参数传递给方法int min=Integer.MAX_VALUE;for(int i=0;ip.length;i+)if(pi.agemin) min=pi.age; /将对象数组中成员变量age的最小值存入变量min中return min; /返回对象数组中最小的成员变量的值public class App7_14public static void main(String args)Person per=new Person3;per0=new Person(张三,20);per1=new Person(李四,21);per2=new Person(王二,19);System.out.println(最小的年龄为:+Person.minAge(per);程序运行结果及其分析:实验26 类的私有成员与公共成员 实验要求 :编写一个Java程序,在程序中定义一个Person类,其中age属性是一个私有属性,并且范围在520之间class PersonString name;private int age;public boolean setAge(int newAge)if(5=newAge&newAge=20)age=newAge;return(true);elsereturn(false);public int getAge()return(age);public class Apppublic static void main(String args)Person s1=new Person();=张三;if(s1.setAge(25)System.out.println(姓名:++,年龄:+s1.getAge();elseSystem.out.println(年龄错误);运行结果如下:实验27 类的构造方法1 实验要求 :编写一个Java程序 ,在程序中定义Student类,Student类有三个构造方法,分别对不同的属性进行初始化 编写程序如下class Student /定义类Student.String name;int age;public Student() /定义无参的构造方法。System.out.println(Student()构造方法被调用);public Student(String c) /定义有一个参数的构造方法。name=c;System.out.println(Student(String newName)构造方法被调用);public Student(String a,int b) /定义有两个参数的构造方法。name=a;age=b;System.out.println(Student(String newName,int newAge)构造方法被调用);public static void main(String args)Student volu1=new Student(); /创建Student类的一个对象,不传入参数Student volu2=new Student(张三); /创建Student类的一个对象,传入一个参数:”张三”Student volu3=new Student(张三,15); /创建Student类的一个对象,传入两个参数:”张三”、15运行结果如下程序分析如下:程序中的 Student类有三个构造方法,分别对不同的属性进行初始化。实验28 类的构造方法2实验要求:编写一个Java程序 ,在程序中定义一个Employee类,Employee类有四个构造方法,分别对不同的属性进行初始化,有一个setAge()方法能设置age属性值,有一个getAge()方法能返回age属性值程序编写如下:class Employeeprivate String name;private int age;private double salary;public Employee(String newName,int newAge,double newSalary)this(newAge,newSalary);System.out.println(三个参数的构造方法被调用);name=newName;public Employee(int newAge,double newSalary)this(newSalary);System.out.println(两个参数的构造方法被调用);age=newAge;public Employee(double newSalary)this();System.out.println(一个参数的构造方法被调用);salary=newSalary;public Employee()System.out.println(没有参数的构造方法被调用);void setAge(int newAge)int age=0;this.age=newAge;int getAge()return age;public static void main(String args)Employee s1=new Employee(李四,30,8000);s1.setAge(31);System.out.println(年龄是+s1.getAge();运行结果如下:实验29 编写一个java程序,在程序中定义一个MyPlus类,MyPlus类有三个plus()方法,分别对不同的参数进行求和。/MyPlus.javaclass MyPluspublic int plus(int a,int b)int s;s=a+b;return s;public int plus(int a,int b,int c)int s;s=plus(a,b)+c;return s;public int plus(int a,int b,int c,int d)int s;s=plus(a,b,c)+d;return s;public static void main(String args)MyPlus p=new MyPlus();System.out.println(1+2=+p.plus(1,2);System.out.println(1+2+3=+p.plus(1,2,3);System.out.println(1+2+3+4=+p.plus(1,2,3,4);程序运行结果:实验30 编写一个java程序,在程序中定义一个Ca类,Ca类有静态成员和非静态成员,再定义一个Cb类,在Cb类中创建Ca类的对象。/Ca.javaclass Caint a;static int b;public static void m1()int a=10;int b=10;public void m2()a=5;

温馨提示

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

评论

0/150

提交评论