java实验报告——对象和类
JAVA实验报告_Java类与对象
JAVA实验报告_Java类与对象贵州大学实验报告学院:计信学院专业:网络工程班级:101 姓名学号实验组实验时间05.11 指导教师肖源源成绩实验项目名称Java类与对象实验目的1)理解面向过程与面向对象区别2)理解面向对象的三大特征3)掌握类声明的方法4)掌握构造方法5)掌握对象的创建方法与创建机制6)掌握成员变量、类变量和局部变量区别7)掌握成员方法与类方法区别8)掌握函数的重载9)掌握4种访问修饰符的区别实验要求1.安装并设置Java SDK 软件包。
2.按要求编写程序完成实验指导所需实验要求。
3.调试并成功运行。
实验内容1、创建猴子类。
具体要求如下:1)编写一个类Monkey,用来表示猴子类;2)给Monkey类确定添加4个属性:3个实例成员变量(名字、体重、年龄)、1个静态成员变量(爱好:默认值为:吃香蕉);3)添加默认构造方法和有参构造方法(3个参数,分别给名字、体重和年龄赋初始值)4)编写展示猴子能够爬树(climbTree)的方法――提供两个参数传入:分别代码猴子的名字(name)和爬树的高度(height)(方法内只需打印猴子的”名字+会爬树,能爬+高度”)5)测试:在main方法中创建两个猴子对象monkey1(甲、50、3)和monkey2(乙、45、2),monkey1使用默认构造方法创建,monkey2使用有参构造方法创建。
分别打印出monkey1和monkey2的名字、体重、年龄和爱好。
并调用monkey1和monkey2的爬树方法。
2、创建矩形Rectangle类。
具体要求如下:1)创建一个Rectangle类;2)创建属性:两个double成员变量:width和height。
3)创建方法:计算矩形的周长getLength()和面积getArea()。
4)测试:创建Rectangle对象,并给两个成员变量赋值,调用周长和面积的方法,输出周长和面积。
实验数据实验总结整体实验基本达到要求,理解面向过程与面向对象区别,掌握类声明的方法,掌握对象的创建方法,掌握函数的重载等。
java实验四对象和类(抽象类、接口与包)
java实验四对象和类(抽象类、接口与包) 实验四对象和类(抽象类、接口与包) 一、实验目的1、熟练掌握抽象类abstract的概念。
2、熟练掌握接口interface的概念。
3、熟练包package的概念以及编译运行的方法。
4、熟练掌握内部类inner class的概念。
5、熟练掌握递归的概念。
6、理解面向对象的程序设计方法。
二、实验内容与要求1(编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应用程序,要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的特点。
程序如下:abstract class Geometric{ //定义抽象类abstract double getPerimter();abstract double getArea(); }interface MY{ //定义接口float getarea();float getperimter();}class sanjiaoxing extends Geometric{ //三角形类继承抽象类private float a;private float b;private float c;sanjiaoxing(float x1,float x2,float x3){a=x1;b=x2;c=x3;}double getPerimter(){return a+b+c;}double getArea(){float p=(a+b+c)/2;return Math.sqrt(p*(p-a)*(p-b)*(p-c));}}class yuanxing extends Geometric{ //圆类继承抽象类private float radius;yuanxing(float a){radius=a;}double getPerimter(){double p;p=2*3.14f*radius;return p;}double getArea(){return 3.14f*radius*radius;}}class juxing implements MY{ //矩形类实现接口private float height;private float width;juxing(float a,float b){height=a;width=b;}public float getperimter(){return 2*(width+height);}public float getarea(){return width*height;}}class abc{public static void main(String args[]){ sanjiaoxing obj1=new sanjiaoxing(3,4,5); System.out.println("当三角形三边是3,4,5时:"); System.out.println("边长是:"+obj1.getPerimter()); System.out.println("面积是:"+obj1.getArea()); yuanxing obj2=new yuanxing(4);System.out.println("当圆的半径是4时:");System.out.println("周长是:"+obj2.getPerimter());System.out.println("面积是:"+obj2.getArea());juxing obj3=new juxing(3,4);System.out.println("当矩形长和宽是3,4时:");System.out.println("周长是:"+obj3.getperimter());System.out.println("面积是:"+obj3.getarea());}}结果如下:, 出现的问题1:需要定义抽象类和接口,并用三角形、矩形和圆形来实现里边定义的方法。
Java实验报告三类与对象
福建农林大学计算机与信息学院实验报告实验(三)类与对象一、实验目的和要求1.深入理解类和对象二、实验内容和原理1. 建立包myPackageA,在包中创建一个矩形类,其中包括计算矩形周长和面积两个方法。
在包myPackageB中建立一个Main类,在Main类中使用该矩形类,计算给定长和宽的矩形的周长和面积。
要求:当给定的长或者宽为负数或者0时,应该无法计算。
2. 编写一个Rational(有理数)类,具体要求如下:①Rational类有两个int型的成员变量,名字分别为fengZi(分子)和fengMu(分母)。
②提供Rational add(Ration al r)方法,即有理数调用该方法与参数指定的有理数做加法运算,并返回一个Rational对象③提供Rational multi(Rational r)方法,即有理数调用该方法与参数指定的有理数做乘法运算,并返回一个Rational对象。
④为了弱化难度,设参与运算的有理数均为正数。
三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以用流程图、伪代码或源程序描述)2.实验步骤一、package myPackageA;public class 矩形类{public double Long,Wide;public double Girth(){if(Long>0&&Wide>0){double result=(Long+Wide)*2;System.out.println("长为:"+Long+","+"宽为:"+Wide+"的矩形");System.out.print("其周长是"+result+";");return result;}elseSystem.out.println("您输入的数据有误");return 1;}public double Area(){if(Long>0&&Wide>0){double result=Long*Wide;System.out.println("其面积是"+result);return result;}elsereturn 1;}}package myPackageB;import myPackageA.*;public class Main {public static void main(String args[]){矩形类a=new 矩形类();a.Long=2;a.Wide=0; // a.Wide=6;a.Girth();a.Area();}}二、package myPackageC;public class Rational {int fengzi,fengmu;Rational add(Rational r) {int a=r.fengzi;int b=r.fengmu;int newFengzi=fengzi*b+fengmu*a;int newFengmu=fengmu*b;Rational result1=new Rational();result1.fengzi=newFengzi;result1.fengmu=newFengmu;int x=newFengzi;int y=newFengmu;if(x<y) {int z=x;x=y;y=z;}int c=x%y;while(c!=0) {x=y;y=c;c=x%y;}System.out.println(fengzi+"/"+fengmu+"+"+r.fengzi+"/"+r.fengmu +"="+newFengzi/y+"/"+newFengmu/y);return result1;}Rational multi(Rational r){int a=r.fengzi;int b=r.fengmu;int newFengzi=fengzi*a;int newFengmu=fengmu*b;Rational result2=new Rational();result2.fengzi=newFengzi;result2.fengmu=newFengmu;int x=newFengzi;int y=newFengmu;if(x<y) {int z=x;x=y;y=z;}int c=x%y;while(c!=0) {x=y;y=c;c=x%y;}System.out.println(fengzi+"/"+fengmu+"*"+r.fengzi+"/"+r.fengmu+ "="+newFengzi/y+"/"+newFengmu/y);return result2;}public static void main(String args[]){Rational r1=new Rational();r1.fengzi=7;r1.fengmu=10;Rational r2=new Rational();r2.fengzi=2;r2.fengmu=5;r1.add(r2);r1.multi(r2);}}五、调试过程1.编译过程2.调试过程六、实验结果用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确。
Java实验报告(三)
Java实验报告(三)实验(三)类和对象⼀、实验⽬的和要求1.掌握类的构造函数的重载2.深⼊理解类和对象3.学习NetBeans中UML项⽬的创建类并⽣成相应代码的⽅法⼆、实验内容和原理设计⼀个复数类,能够完成复数之间的基本运算,重写⽅法toString(),使其能输出此复数(形式为:实部 + 虚部i)。
要求设计的复数类必须有三个构造函数,分别为⽆参数、1个参数和2个参数的构造函数,完成的基本运算包括两个复数的加、减、乘、除法和共轭复数。
三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以⽤类图、流程图、伪代码或源程序描述)2.实验步骤●创建⼀个UML项⽬,并设计类Complex如下图●创建⼀个Java应⽤项⽬●把UML项⽬中的Complex⾃动⽣成代码到Java应⽤项⽬中●实现Complex类中的⽅法●进⾏编译●进⾏测试,使⽤的测试⽤例:输⼊:预期输出:…代码:Complex类:package studentTaskThree;/*** 复数类* @author Administrator**/public class Complex{/*** 定义类变量,复数的实部realPart和虚部ImaginaryPart */ private double realPart;private double imaginaryPart;/*** ⽆参构造⽅法*/public Complex(){super();* 不含实部复数的构造⽅法* @param realPart*/public Complex(double imaginaryPart){super();this.imaginaryPart = imaginaryPart;}/*** 含有实部参数和虚部参数的构造⽅法* @param realPart* @param imaginaryPart*/public Complex(double realPart, double imaginaryPart) { super();this.realPart = realPart;this.imaginaryPart = imaginaryPart;}/*** 读取实部* @return*/public double getRealPart(){return realPart;}/*** 设置实部* @param realPart*/public void setRealPart(double realPart){this.realPart = realPart;* 读取虚部* @return*/public double getImaginaryPart(){return imaginaryPart;}/*** 设置虚部* @param imaginaryPart*/public void setImaginaryPart(double imaginaryPart){this.imaginaryPart = imaginaryPart;}/*** 复数相加⽅法* @param complex* @return*/public Complex plus(Complex complex){return new Complex(this.realPart + complex.realPart, this.imaginaryPart + complex.imaginaryPart); }/*** 复数相减⽅法* @param complex* @return*/public Complex minus(Complex complex){return new Complex(this.realPart - complex.realPart, this.imaginaryPart - complex.imaginaryPart); }* @param complex* @return*/public Complex times(Complex complex){return new Complex(complex.realPart * this.realPart - complex.imaginaryPart * this.imaginaryPart,complex.realPart * this.imaginaryPart +complex.imaginaryPart * this.realPart);}/*** 复数相除⽅法* @param complex* @return*/public Complex divideBy(Complex complex){double dividedPart = (this.realPart * this.realPart +this.imaginaryPart * this.imaginaryPart);return new Complex((complex.realPart * this.imaginaryPart + complex.imaginaryPart * this.realPart) / dividedPart, (complex.imaginaryPart* this.realPart- complex.realPart * this.imaginaryPart) / dividedPart);}/*** 求共轭复数⽅法* @return*/public Complex conjugate(){return new Complex(this.getRealPart(),-this.getImaginaryPart());}/*** 重写toString⽅法,实现复数的输出格式*/String str = "";// 实部为零,虚部不为零if (this.realPart == 0 && this.imaginaryPart != 0){str += this.getImaginaryPart() + "i";}// 实部不为零,虚部为零else if (this.realPart != 0 && this.imaginaryPart == 0){str += this.getRealPart();}// 实部、虚部都不为零else if (this.realPart != 0 && this.imaginaryPart != 0){str += this.getRealPart() + (this.getImaginaryPart() > 0 ? "+": "") + this.getImaginaryPart() + "i"; }return str;}}测试类:Complexdemopackage studentTaskThree;/*** 测试类* @author Administrator**/public class ComplexDemo{/*** main⽅法,测试程序⼊⼝点* @param args*/public static void main(String[] args)* 创建两个完整复数对象*/Complex com1 = new Complex(1, 2);Complex com2 = new Complex(2, 1);// 创建⽆参复数Complex com3 = new Complex();// 创建只有虚部的复数Complex com4 = new Complex(5);// 输出对象System.out.println("复数1:" + com1);System.out.println("复数2:" + com2);System.out.println("复数3:" + com3);System.out.println("复数4:" + com4);// 输出相加结果System.out.println("复数相加:(" + com1 + ") + (" + com2 + ") = " + (com1.plus(com2)).toString()); // 输出相减结果System.out.println("复数相减:(" + com1 + ") - (" + com2 + ") = "+ (com1.minus(com2)).toString());// 输出相乘结果System.out.println("复数相乘:(" + com1 + ") * (" + com2 + ") = " + com1.times(com2));// 输出相除结果System.out.println("复数相除:(" + com1 + ") / (" + com2 + ") = " + com1.divideBy(com2));// 输出所求的共轭复数System.out.println("共轭复数: " + com1 + " 共轭复数是:" +com1.conjugate());}}实际测试类:import javax.swing.JOptionPane;/*** 实际测试类* @author Administrator**//*** 测试类⼊⼝点* @param args*/public static void main(String[] args){// 创建两个复数对象Complex com1 = new Complex();Complex com2 = new Complex();// 输⼊数据com1.setRealPart(Double.parseDouble(JOptionPane.showInputDialog("请输⼊复数1的实部:")));com1.setImaginaryPart(Double.parseDouble(JOptionPane.showInputDia log("请输⼊复数1的虚部:")));com2.setRealPart(Double.parseDouble(JOptionPane.showInputDialog("请输⼊复数2的实部:")));com2.setImaginaryPart(Double.parseDouble(JOptionPane.showInputDia log("请输⼊复数2的虚部:")));// 输出各个⽅法的测试结果JOptionPane.showMessageDialog(null, "复数应⽤测试如下:\n" +"复数1:" + com1 + "\n" +"复数2:" + com2 + "\n" +"复数相加:" + com1.plus(com2) + "\n" +"复数相加:" + com1.minus(com2) + "\n" +"复数相乘:" + com1.times(com2) + "\n" +"复数相除:" + com1.divideBy(com2) + "\n" +"共轭复数:" + com1 + " 共轭复数是:" +com1.conjugate());}}五、调试过程1.编译过程没有错误。
java实验报告——类与对象
name=n; } public void setAge(int a){
age=a; } public void setSex(boolean s){
sex=s; } public void setPhone(String p){
phone=p; } public long getId(){
return id; } public String getName(){
return name; } public int getAge(){
return age;
2
实验报告
} public boolean getSex(){
return sex; } public String getPhone(){
6)写出 Cmanage 类中的属性
由 Customer 中的属性决定,即:编号 id,姓名 name,年龄 age,性别 sex, 电话号码 phone。
7)写出 Cmanage 类中的构造方法 Cmanage();//无参构造函数
4
实验报告
8)写出 Cmanage 类中插入方法 public void insert(){ Scanner in=new Scanner(System.in); System.out.println("请输入要插入的人数:"); int n=in.nextInt(); cu=new Customer[n]; for(int i=0;i<n;i++){ cu[i]=new Customer(); System.out.println("请输入第"+(i+1)+"个要插入的顾客的信息:"); cu[i].id=in.nextLong(); cu[i].name=in.next(); cu[i].age=in.nextInt(); cu[i].sex=in.nextBoolean(); cu[i].phone=in.next(); }
java 类与对象实验报告
java 类与对象实验报告Java 类与对象实验报告一、实验目的本次实验的目的是通过实际操作,加深对Java类与对象的理解与掌握。
通过编写程序,创建类和对象,实现类的各种属性和方法,并进行相应的测试和调试,从而熟悉类与对象的概念、创建与使用。
二、实验内容本次实验包括以下几个方面的内容:1. 创建一个名为"Student"的类,该类包含学生的姓名、年龄、性别等属性,以及相应的get和set方法。
2. 创建一个名为"Course"的类,该类包含课程的名称、学分、教师等属性,以及相应的get和set方法。
3. 创建一个名为"Teacher"的类,该类包含教师的姓名、年龄、性别等属性,以及相应的get和set方法。
4. 在"Student"类中添加一个名为"selectCourse"的方法,该方法可以选择课程,并将其添加到学生的课程列表中。
5. 在"Student"类中添加一个名为"dropCourse"的方法,该方法可以退选课程,并将其从学生的课程列表中移除。
6. 在"Course"类中添加一个名为"showInfo"的方法,该方法可以显示课程的详细信息。
7. 在"Teacher"类中添加一个名为"teachCourse"的方法,该方法可以教授课程,并显示教师的相关信息。
三、实验过程首先,我们需要创建一个名为"Student"的类。
在该类中,我们定义了学生的姓名、年龄、性别等属性,并为每个属性添加了相应的get和set方法。
接着,我们在该类中添加了一个名为"selectCourse"的方法,该方法可以选择课程,并将其添加到学生的课程列表中;同时,我们还添加了一个名为"dropCourse"的方法,该方法可以退选课程,并将其从学生的课程列表中移除。
java类与对象实验报告
AraAndlengBV3 drdejala ranglejava laderjavadlass Laderdouble above,bottcm,height,area;Lader(double a, double b,double habove=a;bottom=b;height=h;/ /方法体,将参数a,b,h分别赋值给above,bottom,heightdouble getArea()arealabove+bottom)/2*height;return area; 11方法体,,要求计算出areai返回uerava AreaAnuLengunyavaa型类变量b,即static 变量ba变量b二. 、学习实例成员与类成员的区别的简单例题:HH raLKagec l nierarcmy 日 年 マ hik罗 x t tsrc曲(default package)AjavaExamplejavaJRE System Library [idk1.6.0 11d Irangeaa J UITCIE,Javd ua ny ieava La c las s A {float a; / / 声 明 一 个 f l o a t 型 实 例 变 量 stat ic f loat b; / / 声 明 一 个 f lo a t vo id setA (float a)this. a =a; / / 将 参 数 a 的 值 赋 值 给 成 员 变 量evo id{setB (f loatthis . k =b; b)/ / 将 参 数 b 的 值 赋 值 给 成 员}floatgetA()retu rn a;}e f lo a t getB()re tu rn b;}vo id inputA() {System. out .println(a);}s tat ic vo id inputB(){System. out .println(b);h) 命 令 提 示 符Microsoft Windows[版本6. 1.7601]版权所有(c >2809 Microsoft Corporation 。
java类与对象实验报告
java类与对象实验报告Java类与对象实验报告一、引言Java是一种面向对象的编程语言,类和对象是Java编程的基本概念。
在本次实验中,我们将学习和掌握Java类和对象的概念、定义和使用方法,并通过实际的编程实验来加深对这些概念的理解。
二、实验目的1. 理解Java类和对象的概念;2. 学会定义和使用Java类;3. 掌握创建和操作Java对象的方法;4. 熟悉Java类和对象的相关语法和规范。
三、实验过程1. 类的定义在Java中,类是对象的模板,用于描述对象的属性和行为。
我们首先需要定义一个类,以便创建对象。
类的定义包括类名、属性和方法。
属性即对象的特征,方法即对象的行为。
2. 对象的创建通过使用关键字"new",我们可以创建一个类的对象。
对象是类的实例化,每个对象都有自己的属性和方法。
3. 对象的属性和方法对象的属性和方法可以通过对象名加点操作符来访问。
属性可以是基本类型或其他类的对象,方法可以是对象的行为或功能。
4. 构造方法构造方法是一种特殊的方法,用于创建对象时进行初始化操作。
构造方法的名称必须与类名相同,没有返回类型,可以有参数。
5. 封装性封装性是面向对象编程的重要特性之一,它将数据和方法封装在类中,对外部隐藏内部实现细节。
通过使用访问修饰符(private, public, protected)来控制属性和方法的访问权限。
6. 继承继承是面向对象编程的另一个重要特性,它允许我们创建一个新类,并从现有类中继承属性和方法。
通过使用关键字"extends"来实现继承。
7. 多态性多态性是面向对象编程的核心概念之一,它允许我们使用一个父类类型的引用来引用子类的对象。
通过方法的重写和重载来实现多态性。
四、实验结果通过本次实验,我们成功定义了一个Java类,并创建了多个对象。
我们可以通过对象名来访问对象的属性和方法,并对其进行操作。
我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。
java类和对象的应用实验总结
Java类和对象的应用实验总结在Java编程语言中,类(Class)和对象(Object)是两个核心的概念。
类是对象的模板或蓝图,而对象则是类的实例。
通过使用类和对象,我们可以创建具有共享属性和方法的实体,也可以创建具有独特属性和行为的实体。
以下是我对Java类和对象应用实验的一些总结:类的定义和使用:在Java中,我们使用class关键字来定义一个类。
例如,我们可以创建一个名为Person的类,该类具有name、age 和height等属性,以及eat()和sleep()等方法。
我们可以通过创建类的实例(即对象)来使用类。
对象的创建和使用:我们使用new关键字来创建一个类的实例,这个实例就是一个对象。
例如,我们可以创建一个Person类的对象,并通过调用对象的方法来执行特定的行为。
我们也可以通过访问对象的属性来获取或修改对象的状态。
继承:Java中的类可以继承其他类的属性和方法。
通过继承,我们可以创建一个新的类,该类继承了父类的所有属性和方法,并可以添加自己的属性和方法。
这个过程被称为类的扩展或继承。
多态:在Java中,一个对象可以被引用为多种类型。
例如,我们可以有一个父类类型的引用指向一个子类对象。
当调用这个对象的方法时,会根据对象的实际类型来调用相应的方法。
这就是多态性的体现。
封装:封装是Java中一个重要的面向对象编程概念。
通过封装,我们可以将数据(属性)和处理数据的方法(方法)绑定在一起,形成一个独立的实体。
封装的目的是增加安全性和简化性,用户只知道对象提供哪些方法,至于内部的具体实现细节则一概不知。
通过这些实验,我深入理解了Java的类和对象的概念,以及它们在面向对象编程中的重要性。
这些实验也帮助我理解了如何使用类和对象来设计和实现复杂的系统。
java实验类和对象
实验二类和对象实验名称类和对象的有关实验实验环境Myeclipse 9.0.jdk 1.6,windows7 professional 64 bit实验内容通过实验了解和初步掌握类的创建和对象的创建和使用实验题目1.对象的创建和使用。
编写一个圆环类Ring的Java程序。
圆环类有3个数据成员,分别是内半径innerRadius,外半径outerRadius和颜色color,这些属性可以查看get也可以重新设置set,另外,圆环还可以返回其面积area。
2.方法重载。
编写一个Java程序,反映出方法重载的使用特点,该程序包含多个重载的加法运算,例如:整型加法、实型加法、以及混合加法运算等。
实验代码问题一:publicclass Ring{finaldouble PI=3.1415926;double innerRadius;double outerRadius;String color;public Ring(double iRadius,double oRadius,String c){innerRadius=iRadius;outerRadius=oRadius;color=c;}publicdouble getInnerRadius(){return innerRadius;}publicdouble getOuterRadius(){return outerRadius;}publicvoid resetI(double a){innerRadius=a;}publicvoid resetO(double a){outerRadius=a;}publicvoid resetC(String a){color=a;}publicdouble area(){return (outerRadius*outerRadius-innerRadius*innerRadius)*PI; }publicstaticvoid main(String args[]){Ring a=new Ring(5,8,"blue");System.out.println("内径为"+a.getInnerRadius()+"\n");System.out.println("外径为"+a.getOuterRadius()+"\n");System.out.println("面积为"+a.area()+"\n");System.out.println("颜色为"+a.color+"\n");a.resetI(60);a.resetO(80);a.resetC("yellow");System.out.println("内径为"+a.getInnerRadius()+"\n");System.out.println("外径为"+a.getOuterRadius()+"\n");System.out.println("面积为"+a.area()+"\n");System.out.println("颜色为"+a.color+"\n");}}问题二:publicclass OverLoad{int m,n;OverLoad(){m=0;n=0;}OverLoad(int a,int b){m=a;n=b;}int add(){System.out.println("无参数加法"+m+"+"+n+"="+(m+n));return m+n;}int add(int a,int b){System.out.println("整形加法"+m+"+"+n+"="+(m+n));return m+n;}double add(double a,double b){System.out.println("实型加法"+a+"+"+b+"="+(a+b));return a+b;}double add(int a,int b,double c){System.out.println("混合加法"+a+"+"+b+"+"+c+"="+(a+b+c)); return a+b+c;}publicstaticvoid main(String args[]){int ix,iy;double dx,dy;OverLoadov=new OverLoad();ix=ov.add();iy=ov.add(3,6);dx=ov.add(3,6,2);dy=ov.add(3,6,2.2);}}实验运行结果问题一:实验二:实验结论通过以上的运行和实验,我初步掌握了java中类的相关操作方法。
java实验报告类和对象实验报告
课程名称
面向对象程序设计
实验名称
实验三、类和对象
日期
2018/4/9
学生学号
姓名
班级
实验目的:
1.掌握面向对象编程语言中的类和对象的使用方法。
2.理解类的封装性。
实验条件:
电脑一台、能上网查阅资料。
实验内容与步骤:
要求:
设计和实现一个学生类,满足以下要求:
1、学生具有学号、姓名、性别、年龄和专业等属性;
super();
this.sname=sname;
this.snum=snum;
this.sex=sex;
}
publicenumSEXENM{
Male,Female
}
}
packagezhy.shiyan3;
importzhy.shiyan3.Student.SEXENM;
publicclassDemo {
}
publicString getSname() {
returnsname;
}
publicString getSnum() {
returnsnum;
}
publicSEXENM getSex() {
returnsex;
}
publicStudent(Stringsname,Stringsnum,SEXENMsex) {
publicstaticvoidmain(String[]args) {
Studentstudent=null;
student=newStudent("翟海洋","1525",SEXENM.Male);
student.setAge(22);
JAVA实验报告_Java类与对象
JAVA实验报告_Java类与对象实验目的:通过 Java 类与对象的实验,学习 Java 面向对象编程的基本概念和语法,并了解Java 的封装、继承和多态特性。
实验环境:操作系统:Windows 10开发工具:Eclipse IDE for Java DevelopersJava 版本:jdk1.8.0_231实验步骤:1. 创建一个名为 Person 的 Java 类,用于表示人物的基本信息,包括姓名、性别和年龄等。
2. 在 Person 类中使用 private 关键字对字段进行封装,以实现对字段的访问控制,使其只能通过方法进行访问和修改。
3. 在 Person 类中编写构造方法,用于初始化对象的属性值。
6. 调用 Person 对象的方法,显示对象的基本信息。
7. 创建一个名为 Student 的子类,继承 Person 类,并添加一个字段表示学号,以及相应的 get 和 set 方法。
实验结果:Person 类的实现:```javapublic class Person {private String name;private String gender;private int age;public Person(String name, String gender, int age) { = name;this.gender = gender;this.age = age;}public String getName() {return name;}public String getGender() {return gender;}public int getAge() {return age;}public void setName(String name) { = name;}public void setGender(String gender) {this.gender = gender;}public void setAge(int age) {this.age = age;}public void display() {System.out.println("Name: " + getName());System.out.println("Gender: " + getGender());System.out.println("Age: " + getAge());}}```实验分析:通过本次实验,我们学习了 Java 类与对象的基本概念和语法,并了解了 Java 的封装、继承和多态特性。
JAVA实验一类与对象
JAVA实验一类与对象实验一类与对象1.实验目的掌握类的声明、对象的创建、方法的定义和调用、构造函数的使用。
2.实验内容(1)定义一个表示学生信息的类Student,要求如下:①类Student的成员变量:sNO表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩②类Student的方法成员:getNo():获得学号;getName():获得姓名;getSex():获得性别;getAge()获得年龄;getJava():获得Java 课程成绩(2)按(1)中学生类Student的定义,创建两个该类的对象,存储并输出两个学生的信息,计算并输出这两个学生Java语言成绩的平均值。
(3)创建第(1)题的Student类的5个对象,求他们Java语言成绩的最大值和最小值。
public class student {public int sNO,sAge,sJava;public String sName,sSex;public student(int NO,String Name,String Sex,int Age,int Java) {sNO = NO;sName = Name;sSex = Sex;sAge = Age;sJava = Java;}public void getNO(){System.out.println("" + sNO);}public void getName(){System.out.println(" " + sName);}public void getSex(){System.out.println(" " + sSex);}public void getAge(){System.out.println("" + sAge);}public void getJava(){System.out.println(" " + sJava);}public static void main(String[] args){student stu1 = new student(101,"张三","m",17,92); student stu2 = new student(102,"李四","f",18,96); System.out.println("学生1的信息:");stu1.getNO();stu1.getName();stu1.getSex();stu1.getAge();stu1.getJava();System.out.println("学生2的信息:");stu2.getNO();stu2.getName();stu2.getSex();stu2.getAge();stu2.getJava();float eq;eq = (stu1.sJava+stu2.sJava)/2; System.out.println("平均成绩为:" + eq); }}。
Java实验报告_实验二
Java实验报告_实验⼆实验2 类和对象【实验宗旨】每天做⼀点编程练习。
【实验⽬的】1、学习和掌握Java创建对象的⽅法。
2、学习和掌握通过创建对象、使⽤类的⽅法。
3、学习和掌握Java类定义的⽅法。
4、了解类设计的⼀般原则。
【实验内容】1、(Java API类的应⽤)使⽤java.util.Random类,创建种⼦是1000的Random对象,然后使⽤nextInt(100)⽅法显⽰0到100 之间前50个随机整数。
【实验预习】创建Random对象,含有1000个种⼦,然后输出其中的前50个⽆输⼊,创建Random random = new Random(1000);利⽤for循环输出前50的随机数。
【实验过程及结果记录】import java.util.Random;public class JavaText {public static void main(String[] args) {Random random = new Random(1000);for (int i = 0; i < 50; i++)System.out.print(random.nextInt(100) + " ");}}【实验总结】练习产⽣随机数的⽅法(Random).2.(使⽤StackOfIntegers类,显⽰素数因⼦)编写⼀个程序,提⽰⽤户输⼊⼀个正整数,然后以降序显⽰它的所有最⼩因⼦。
例如:如果整数为120,那么显⽰的最⼩因⼦为5、3、2、2、2。
使⽤StackOfIntegers类存储因⼦(如:2、2、2、3、5),获取之后按倒序显⽰这些因⼦。
【实验预习】练习类的调⽤,使⽤StackOfIntegers类【实验过程及结果记录】import java.util.*;import java.awt.*;import javax.swing.*;public class zhiyinshu{public static void main (String[] args) {StackOfIntegers h1 =new StackOfIntegers(); StackOfIntegers h2 =new StackOfIntegers();String str=JOptionPane.showInputDialog(null,"请输⼊⼀个正整数","分解质因数",JOptionPane.QUESTION_MESSAGE); int yuanshu = Integer.parseInt(str);int i=2;int b=0;int c=0;do{i=2;b=0;do{if(yuanshu%i==0){yuanshu=yuanshu/i;h1.jilu(i);b=1;}i++;}while(b==0&&i}while(ih1.jilu(yuanshu);c=h1.getsize();for(int v=0;vh2.jilu(h1.esc());for(int v=0;vSystem.out.print(""+h2.esc()+"\n"); }}class StackOfIntegers {private int size;private int[] zhan;public static final int a=16;public StackOfIntegers(){this(a);}public StackOfIntegers(int n){zhan = new int[n];}public void jilu(int up) {if(size>=zhan.length){int[] temp = new int[zhan.length * 2];System.arraycopy(zhan,0,temp,0,zhan.length);zhan=temp;}zhan[size++]=up;}public int esc(){return zhan[--size];}public int getsize(){return size;}}【实验总结】练习了创建随机数的⽅法以及Java的输出⽅法,在编码的过程中还是经常出现⼤⼩写打错的情况。
java类与对象实验报告
java类与对象实验报告《Java类与对象实验报告》实验目的:本实验旨在帮助学生理解和掌握Java中类与对象的概念,以及如何创建和使用它们。
通过实际操作,学生将能够加深对类与对象的理解,并掌握如何在程序中正确地使用它们。
实验内容:1. 创建一个简单的Java类,包括成员变量和成员方法。
2. 创建该类的对象,并调用其成员方法。
3. 理解类与对象之间的关系,以及如何通过对象访问类的成员变量和成员方法。
4. 掌握类的继承与多态的概念,以及如何在程序中应用它们。
实验步骤:1. 首先,我们创建一个名为“Person”的Java类,该类包括姓名和年龄两个成员变量,以及一个打印个人信息的成员方法。
2. 接下来,我们创建一个名为“Main”的主类,在该类中创建“Person”类的对象,并调用其成员方法打印个人信息。
3. 然后,我们创建一个名为“Student”的子类,继承“Person”类,并重写其打印个人信息的方法。
4. 最后,我们创建“Main”类的另一个对象,分别用“Person”类和“Student”类的对象调用成员方法,观察多态的效果。
实验结果:通过本次实验,我们成功创建了一个简单的Java类,并在程序中正确地使用了它。
我们也理解了类与对象之间的关系,以及如何通过对象访问类的成员变量和成员方法。
此外,我们还掌握了类的继承与多态的概念,并成功在程序中应用它们。
结论:本次实验使我们更加深入地理解了Java中类与对象的概念,以及如何正确地创建和使用它们。
通过实际操作,我们掌握了类的继承与多态的概念,并成功在程序中应用它们。
这将为我们今后的学习和工作打下坚实的基础。
Java实验报告2 类和对象
实验报告【实验名称】第二章类和对象【实验目的】1.学习Java的基本语法2.学习Java的运算符和控制语句3.学习类和对象的概念【实验原理】1.Java程序设计基本原理2.面向对象程序设计基本原理【实验内容】一、填空题1. System.out.println(“12”+ 5);语句的输出结果是 125 。
2. Java语言中“2.5%1.2”的运算结果是 0.1 。
二、简答1. 为什么类成员方法只能操作类成员变量,而不能操作实例变量?[解答]因为类方法是静态方法,静态方法在加载class的时候就会初始化,而非静态成员(实例成员)还未进行初始化,所以类成员方法只能操作类成员变量,而不能操作实例变量。
2. 简述指针和引用有什么区别?[解答]指针表示的是地址,引用表示的也是地址,但是指针可以进行修改,引用则不能进行改动。
并且使用指针具有三大缺点,指针指向的内存并不是我们所需要的内存、指针所访存的内存空间是不允许被访存的、指针访存的空间并不存在。
三、实验题1. 指出程序中的错误,并修正public class Example{public static void main(String args[]){int a=1.0;float fa=216;float fb=21.656f;double da=125e45d;double db=123.45;float fc=0.1;}}[解答]:int a=1.0 修改为 double a=1.0 (float型比int型级别高)float fc=0.1 修改为 double fc=0.1 (double的类型比float级别高)2.写出如下程序输出结果,并说明原因public class E_c{public static void main(String args[]){String sx1="my";String sx2="god";char cx='a';System.out.println(sx1+sx2);System.out.println(sx2+cx);System.out.println(sx1+5);System.out.println(cx+5);}}结果:mygodgodamy5102原因:因为在输出内容包含字符串的时候,输出结果就全部为字符串,因此前三个结果为字符,第四个并不是,c的ascii为97,所以结果为1023、把如下程序改成从键盘输入两个整数,并判断大小。
java实验报告——对象和类
成绩:面向对象原理与Java实践课程实验报告实验1:对象和类姓名 ____班级 ____学号 ____实验地点 ____实验时间 ____指导教师 ____面向对象原理与Java实践课程实验报告实验1:对象和类一、实验目的:●掌握类的定义及应用方法●掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性●体会Java在类和对象的设计中体现的面向对象的思想二、实验要求:●具备Java基础知识(教材第1、2章内容)●掌握Java中对象和类的基本概念和应用方法(教材第3章内容)●设计类时注意保证类的封装性●编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档)三、实验内容:设计并实现一个“广石化院电信学院学生通信录”系统。
系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。
记录的存储可采用数组或链表的方式。
四、设计思路:为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。
学生信息将会采用学生类的对象数组来储存。
五、程序源代码:下面是ZhuJieMian 主界面类package pkg_TXL;import java.util.Scanner;public class ZhuJieMian{/**** 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转*/public static void main(String[] args){// TODO Auto-generated method stub//XueShengXinXi[] Stu=ChuShiHua(); //初始化系统数据XueShengXinXi[] Stu=new XueShengXinXi[100];Stu[0]=new XueShengXinXi("专业", "班级", "姓名", "性别", "电话", "家庭住址");Stu[1]=new XueShengXinXi("自动化", "自动化10-1", "张三", "男", "63256", "fnhjfdhsdbh");Stu[2]=new XueShengXinXi("自动化", "自动化10-2", "李四", "女", "653256", "nfhggdfddhsdbh");Stu[3]=new XueShengXinXi("电子", "电子10-1", "王五", "男", "6156", "fnhvjbh");Stu[4]=new XueShengXinXi("电子", "电子10-2", "小红", "女", "63956", "asdfnhjbh");Stu[5]=new XueShengXinXi("网络", "网络10-1", "小明", "男", "656", "nfgdgfnhjbh");Stu[6]=new XueShengXinXi("网络", "网络10-2", "小芳", "女", "62215", "nfgdmmmdfhbdsh");Stu[7]=new XueShengXinXi("计算机", "计算机10-1", "黄龙", "男", "65584", "bbbdddfnhjbh");Stu[8]=new XueShengXinXi("计算机", "计算机10-2", "陈玲", "女", "666114", "mjgfddddfnhjbh");Stu[9]=new XueShengXinXi("测控", "测控10-1", "赵小斌", "男", "644814", "fthnrehbkjhjbh");Stu[10]=new XueShengXinXi("测控", "测控10-2", "钱颖", "女", "63641", "dbfsvnnhjbh");Stu[11]=new XueShengXinXi("电信", "电信10-1", "孙武", "男", "6321514", "mmhmgvvdfnhjbh");Stu[12]=new XueShengXinXi("电信", "电信10-2", "李雨", "女", "6314", "43ghffvvdfnhjbh");for(int x=13;x<Stu.length;x++){Stu[x]=new XueShengXinXi();}System.out.println("欢迎使用广石化电信学院通讯录系统!");ZhuJieMian: for(int exit=0;exit==0;)//exit为退出主菜单的指示变量,0为不退出,非0为退出{System.out.println();System.out.println("************************************");System.out.println("****************主菜单****************");System.out.print(" 1。
实验四 Java类和对象
实验四类与对象、继承【目的】①使用类来封装对象的属性和功能;②掌握类变量与实例变量,以及类方法与实例方法的区别;③掌握使用package和import语句。
④巩固以下概念:子类的继承性子类对象的创建过程成员变量的继承与隐藏方法的继承与重写【内容】1.三角形、梯形和圆形的类封装✧实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
具体要求如下:a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。
b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
✧程序模板:AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle( double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。
}else{【代码4】//给boo赋值。
}}double getLength(){【代码5】//方法体,要求计算出length的值并返回}public double getArea(){if(boo){double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;return area;}else{System.out.println("不是一个三角形,不能计算面积");return 0;}}public void setABC(double a,double b,double c){【代码6】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码7】) //a,b,c构成三角形的条件表达式{【代码8】//给boo赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩:面向对象原理与Java实践课程实验报告实验1:对象和类姓名 ____班级 ____学号 ____实验地点 ____实验时间 ____指导教师 ____面向对象原理与Java实践课程实验报告实验1:对象和类一、实验目的:●掌握类的定义及应用方法●掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性●体会Java在类和对象的设计中体现的面向对象的思想二、实验要求:●具备Java基础知识(教材第1、2章内容)●掌握Java中对象和类的基本概念和应用方法(教材第3章内容)●设计类时注意保证类的封装性●编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档)三、实验内容:设计并实现一个“广石化院电信学院学生通信录”系统。
系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。
记录的存储可采用数组或链表的方式。
四、设计思路:为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。
学生信息将会采用学生类的对象数组来储存。
五、程序源代码:下面是ZhuJieMian 主界面类package pkg_TXL;import java.util.Scanner;public class ZhuJieMian{/**** 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转*/public static void main(String[] args){// TODO Auto-generated method stub//XueShengXinXi[] Stu=ChuShiHua(); //初始化系统数据XueShengXinXi[] Stu=new XueShengXinXi[100];Stu[0]=new XueShengXinXi("专业", "班级", "姓名", "性别", "电话", "家庭住址");Stu[1]=new XueShengXinXi("自动化", "自动化10-1", "张三", "男", "63256", "fnhjfdhsdbh");Stu[2]=new XueShengXinXi("自动化", "自动化10-2", "李四", "女", "653256", "nfhggdfddhsdbh");Stu[3]=new XueShengXinXi("电子", "电子10-1", "王五", "男", "6156", "fnhvjbh");Stu[4]=new XueShengXinXi("电子", "电子10-2", "小红", "女", "63956", "asdfnhjbh");Stu[5]=new XueShengXinXi("网络", "网络10-1", "小明", "男", "656", "nfgdgfnhjbh");Stu[6]=new XueShengXinXi("网络", "网络10-2", "小芳", "女", "62215", "nfgdmmmdfhbdsh");Stu[7]=new XueShengXinXi("计算机", "计算机10-1", "黄龙", "男", "65584", "bbbdddfnhjbh");Stu[8]=new XueShengXinXi("计算机", "计算机10-2", "陈玲", "女", "666114", "mjgfddddfnhjbh");Stu[9]=new XueShengXinXi("测控", "测控10-1", "赵小斌", "男", "644814", "fthnrehbkjhjbh");Stu[10]=new XueShengXinXi("测控", "测控10-2", "钱颖", "女", "63641", "dbfsvnnhjbh");Stu[11]=new XueShengXinXi("电信", "电信10-1", "孙武", "男", "6321514", "mmhmgvvdfnhjbh");Stu[12]=new XueShengXinXi("电信", "电信10-2", "李雨", "女", "6314", "43ghffvvdfnhjbh");for(int x=13;x<Stu.length;x++){Stu[x]=new XueShengXinXi();}System.out.println("欢迎使用广石化电信学院通讯录系统!");ZhuJieMian: for(int exit=0;exit==0;)//exit为退出主菜单的指示变量,0为不退出,非0为退出{System.out.println();System.out.println("************************************");System.out.println("****************主菜单****************");System.out.print(" 1。
查询学生信息\t\t");System.out.println("2。
新增学生信息");System.out.print(" 3。
修改学生信息\t\t");System.out.println("4。
删除学生信息");System.out.print(" 5。
恢复已被删除信息\t\t");System.out.println("6。
退出");System.out.println("************************************");System.out.println("************************************");System.out.print("请选择你要操作的功能序号:");Scanner scn_input=new Scanner(System.in);String XuHao=scn_input.next();System.out.println();if(XuHao.equals("1")) //二级菜单——查询学生信息{select:for(int exit2=0;exit2==0;) //exit为退出二级菜单的指示变量,0为不退出,非0为退出{System.out.println("********************************************************** *****");System.out.println("************************二级菜单——查询学生信息************************");System.out.println("********************************************************** *****");System.out.println();System.out.print("请输入要查找的关键字(包括专业,班级,姓名等等),输入“all”显示全部信息,输入“back”返回主菜单:");String str_KeyWord=scn_input.next();System.out.println();if(str_KeyWord.equals("all")){System.out.println();System.out.println("************************学生通讯录信息************************");XueShengXinXi.Show(Stu);System.out.println();System.out.println();continue select;}else if(str_KeyWord.equals("back")){continue ZhuJieMian;}else{int[] index=XueShengXinXi.Select(str_KeyWord,Stu);if(index[0]==0){System.out.println("抱歉,没有找到关于“"+str_KeyWord+"”的学生信息!");System.out.println();continue select;}else{System.out.println("************************学生通讯录信息************************");XueShengXinXi.Show(Stu,index);System.out.println();System.out.println();continue select;}}}}else if(XuHao.equals("2")) //二级菜单——新增学生信息{insert:for(int exit3=0;exit3==0;){System.out.println();System.out.println("********************************************************** *****");System.out.println("************************二级菜单——新增学生信息************************");System.out.println("********************************************************** *****");System.out.println();System.out.println("请按右边的格式输入新增学生的专业/班级/姓名/性别/电话/地址信息(前3项信息必填),输入“back”返回主菜单:");String str_Stu=scn_input.next();if(str_Stu.equals("")){System.out.println("输入有误,请重新输入!");continue insert;}else if(str_Stu.equals("back")){System.out.println();continue ZhuJieMian;}else{boolean zuoFei=XueShengXinXi.Insert(Stu, str_Stu);if(zuoFei==true){System.out.println();System.out.println("由于学生信息必填项信息缺失,所以新增失败。