Java类与对象实验报告

合集下载

实验四 Java类和对象

实验四 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赋值。

Java实验报告三类与对象

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实验报告——类与对象
id=i; } public void setName(String n){
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实验报告3类与对象的使用

Java实验报告3类与对象的使用
charsex;
Stringdate;
voidinit(Stringusername,Stringname,charsex,Stringdate)
{
ername=username;
=name;
this.sex=sex;
this.date=date;
}
voiddisplay()
1学习类的一般结构2学习类的成员变量及成员方法的声明3学习对象的创建4学习调用对象的成员变量与成员方法5理解类的构造方法的作用和执行过程6学习方法调用时参数的传递7掌握方法的重载实验内容
Java语言程序设计实验报告
系别
班级
学号
姓名
地点
计算机科学系
课程名称
Java语言程序设计
实验名称
实验3类与对象的使用
}
publicvoidsetPassword(StringPassword){
this.password=password;
}
publicString getUsername(){
returnusername;
}
publicvoidsetUsername(Stringname){
ername=username;
{
System.out.println("用户名:"+username);
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("出生日期:"+date);
}
voidmodify(Strቤተ መጻሕፍቲ ባይዱngusername,Stringname,charsex,Stringdate)

java 类与对象实验报告

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类与对象实验报告

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编程的基本概念。

在本次实验中,我们将学习和掌握Java类和对象的概念、定义和使用方法,并通过实际的编程实验来加深对这些概念的理解。

二、实验目的1. 理解Java类和对象的概念;2. 学会定义和使用Java类;3. 掌握创建和操作Java对象的方法;4. 熟悉Java类和对象的相关语法和规范。

三、实验过程1. 类的定义在Java中,类是对象的模板,用于描述对象的属性和行为。

我们首先需要定义一个类,以便创建对象。

类的定义包括类名、属性和方法。

属性即对象的特征,方法即对象的行为。

2. 对象的创建通过使用关键字"new",我们可以创建一个类的对象。

对象是类的实例化,每个对象都有自己的属性和方法。

3. 对象的属性和方法对象的属性和方法可以通过对象名加点操作符来访问。

属性可以是基本类型或其他类的对象,方法可以是对象的行为或功能。

4. 构造方法构造方法是一种特殊的方法,用于创建对象时进行初始化操作。

构造方法的名称必须与类名相同,没有返回类型,可以有参数。

5. 封装性封装性是面向对象编程的重要特性之一,它将数据和方法封装在类中,对外部隐藏内部实现细节。

通过使用访问修饰符(private, public, protected)来控制属性和方法的访问权限。

6. 继承继承是面向对象编程的另一个重要特性,它允许我们创建一个新类,并从现有类中继承属性和方法。

通过使用关键字"extends"来实现继承。

7. 多态性多态性是面向对象编程的核心概念之一,它允许我们使用一个父类类型的引用来引用子类的对象。

通过方法的重写和重载来实现多态性。

四、实验结果通过本次实验,我们成功定义了一个Java类,并创建了多个对象。

我们可以通过对象名来访问对象的属性和方法,并对其进行操作。

我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。

实验3Java面向对象编程(类与对象)实验

实验3Java面向对象编程(类与对象)实验

实验3Java面向对象编程(类与对象)实验实验3 Java面向对象编程(1)一、实验目的:1.掌握Java 面向对象编程的基础概念和编程方法2.掌握类的概念,属性和方法的定义注意:类的结构的设计,类的编写方法。

二、实验环境(硬/软件要求):通过局域网互联,安装Windows 2000/XP操作系统环境的JDK1.6.0(或以上版本),eclipse。

三、实验内容:编写并调试运行Java程序,进行类的设计,掌握构造函数及类的继承的设计方法。

本次可开始使用Eclipse进行程序开发。

四、实验主要步骤:(一)、编写一个Java Application程序,文件名为Rect_One.java。

目的:掌握类的结构,对象的引用,熟悉属性、方法的使用。

要求::1.建立一个类,①矩形的属性宽、高、面积、周长分别为width、height,S、L;②方法setBox( ),设置width和height的初始值,③方法getArea( ),计算矩形的面积S。

④方法getL( ),计算矩形的周长L。

2.在主类的main方法中,输出矩形的长、宽和面积、周长。

3.增加两个构造方法,对矩形进行初始化。

4.对构造方法分别进行测试。

(二)编写一个复数类,包含实部和虚部属性,还有复数相加、相减以及复数的求模、输出复数字符串”a+bi”。

(三)课后试验,教材实验3内容(2)设计银行账户类。

包括帐号、姓名、开户时间、余额,成员方法包括存款、取款、查询余额,计算利息等。

对所设计的类进行测试。

(四)编写一个描述学生基本情况的类属性包括姓名,学号,语文成绩,数学成绩和英语成绩,方法包括信息输出,设置姓名和学号,设置三门课程成绩,计算总成绩和平均成绩, 并对所录入的学生按照总分排序进行输出。

选作题:(五)设计实验验证有继承关系的三级父子类的构造方法和析沟方法的执行次序,并回答以下问题1 构造子类对象的时候会调用父类的构造方法吗?2 父类和子类构造方法的执行顺序?谁先执行?五、实验报告(要求独立完成参考程序的代码、编译、调试与运行)1 独立完成参考程序的代码、编译、调试与运行六、实验报告形式(纸质/电子):1.本次试验报告采用手写一、二、三题代码(纸质A4纸),试验结果截图打印出来,附在试验报告后。

java类和对象的应用实验总结

java类和对象的应用实验总结

Java类和对象的应用实验总结在Java编程语言中,类(Class)和对象(Object)是两个核心的概念。

类是对象的模板或蓝图,而对象则是类的实例。

通过使用类和对象,我们可以创建具有共享属性和方法的实体,也可以创建具有独特属性和行为的实体。

以下是我对Java类和对象应用实验的一些总结:类的定义和使用:在Java中,我们使用class关键字来定义一个类。

例如,我们可以创建一个名为Person的类,该类具有name、age 和height等属性,以及eat()和sleep()等方法。

我们可以通过创建类的实例(即对象)来使用类。

对象的创建和使用:我们使用new关键字来创建一个类的实例,这个实例就是一个对象。

例如,我们可以创建一个Person类的对象,并通过调用对象的方法来执行特定的行为。

我们也可以通过访问对象的属性来获取或修改对象的状态。

继承:Java中的类可以继承其他类的属性和方法。

通过继承,我们可以创建一个新的类,该类继承了父类的所有属性和方法,并可以添加自己的属性和方法。

这个过程被称为类的扩展或继承。

多态:在Java中,一个对象可以被引用为多种类型。

例如,我们可以有一个父类类型的引用指向一个子类对象。

当调用这个对象的方法时,会根据对象的实际类型来调用相应的方法。

这就是多态性的体现。

封装:封装是Java中一个重要的面向对象编程概念。

通过封装,我们可以将数据(属性)和处理数据的方法(方法)绑定在一起,形成一个独立的实体。

封装的目的是增加安全性和简化性,用户只知道对象提供哪些方法,至于内部的具体实现细节则一概不知。

通过这些实验,我深入理解了Java的类和对象的概念,以及它们在面向对象编程中的重要性。

这些实验也帮助我理解了如何使用类和对象来设计和实现复杂的系统。

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类和对象实验
return y;
}
public void setY(int newY) {
y = newY;
}
public static void main(String[] args) {
System.out.println("静态变量x="+StaticDemo.getX());
//System.out.println("实例变量y="+StaticDemo.getY()); //非法,编译时将出错
c2.setRadius(5);
System.out.println("圆的面积是:"+c2.area());
System.out.println("圆的周长是:"+c2.circumference());
运行结果:
圆的面积是:3.14
圆的周长是:6.28
圆的面积是:78.5
圆的周长是:31.400000000000002
System.out.println("c1引用的牌是:"+c1+"\tc2引用的牌是:"+c2);
System.out.println("第11张牌是:"+cards[10]+"\t第13张牌是:"+cards[12]);
运行结果:
2.在主方法中用创建一个不指定半径的Circle类的实例myCircle2,输出它的周长和面积,然后利用修改半径的方法设置它的半径为5,再次输出它的周长和面积。
程序:
Circle c2=newCircle();
System.out.println("圆的面积是:"+c2.area());

JAVA实验报告_Java类与对象

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类与对象实验报告范文(2)

JAVA类与对象实验报告范文(2)

JAVA类与对象实验报告范文(2)西安财经学院信息学院《Java程序设计》实验报告姓名学号班级年级指导教师实验名称类与对象实验室实验楼521实验日期2022年4月10日类与对象一、实验目的1、掌握类的定义和使用,编写构造方法及成员方法。

2、能够创建类的实例,掌握对象的声明和不同访问属性的成员访问方式。

3、会定义接口、实现接口。

二、实验内容1.在java中,定义一个接口,声明计算图形面积和周长的抽象方法,再用类去实现这个接口,再编写一个测试类去使用这个接口。

2.设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。

三、实验环境以Window环境为平台,使用JDK5.0四、实验步骤第1页共6页第2页共6页五、实验结果六、小结通过掌握类的定义和使用,编写构造方法并且实现创建类的实例,掌握对象的声明和不同访问属性的成员访问方式以及定义接口、实现接口,通过此次实验让我发现了我对类的定义及其运用都不够熟练,对课本的熟悉度还远远不够,在课后应该及时的复习和上机操作是我们的必修课,这样才能让我们进一步的掌握类与对象。

第3页共6页七、源程序1、interfaceShape{//定义Shape接口finaldoublepi=3.14;//数据成员一定要初始化publicabtractdoublearea();publicabtractdoublegirth();//抽象方法,不需要定义处理方式}claCircleimplementShape{}publicclaInterfaceTeter{publictaticv oidmain(Stringarg[]){Circlecir=newCircle(3.0);Sytem.out.println(\第4页共6页doubleradiu;publicCircle(doubler){//构造方法}publicdoublearea(){}publicdoublegirth(){}return(2某pi某radiu);return(pi某radiu某radiu);radiu=r;}}Sytem.out.println(\2、publicclaCoure{privateStringcoureCode;//定义课程代号privateStringcoureName;//定义课程名称privateStringcoureType;//定义课程类别privateintclaHour;//定义课程学时privatefloatcredit;//定义课程学分publicCoure(StringcoureCode,StringcoureName,StringcoureType,intc laHour,floatcredit){thi.coureCode=coureCode;thi.coureName=coureN ame;thi.coureType=coureType;thi.claHour=claHour;thi.credit=credi t;}StringgetCode(){returncoureCode;}voidetCode(Stringcode){thi.c oureCode=code;}StringgetName(){returncoureName;}voidetName(Strin gname){thi.coureName=name;}第5页共6页StringgetType(){returncoureType;}voidetType(StringcoureType) {thi.coureType=coureType;}intgetClaHour(){returnclaHour;}voidetC laHour(intclaHour){thi.claHour=claHour;}floatgetCredit(){returnc redit;}voidetCredit(floatcredit){thi.credit=credit;}publicvoidpr int(){Sytem.out.println(\Sytem.out.println(\Sytem.out.println(\S ytem.out.println(\Sytem.out.println(\Sytem.out.println(\Sytem.ou t.println(\}publictaticvoidmain(String[]arg){Courec=newCoure(\Sytem.out.println(\c.print();Sytem.out.println(\c.etCredit(6.0f);c .print();}}第6页共6页。

Java实验报告_实验二

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的输出⽅法,在编码的过程中还是经常出现⼤⼩写打错的情况。

实验3Java类与对象

实验3Java类与对象

实验3Java类与对象实验三类与对象一、实验目的1、掌握类和构造方法的定义2、理解静态和非静态成员变量的区别3、掌握创建类实例的方法4、理解Java中包的概念及其使用方法二、实验要求1.写一个名为Rectangle的类表示矩形。

其属性包括宽width、高height和颜色color,width 和height都是double型的,而color 则是String类型的。

要求该类具有:(1)使用构造函数完成各属性的初始赋值(2)使用getter和setter的形式完成属性的访问及修改提供计算面积的getArea()方法public class mianji {private double height;private double width;private String color;public double getHeight() {return height; }public void setHeight(double height) {this.height = height; }public double getWidth() {return width; }public void setWidth(double width) {this.width = width; }public String getColor() {return color; }public void setColor(String color) {this.color = color; }public mianji(double width,double height,String color){ this.setColor(color);this.setHeight(height);this.setWidth(width); }public void getArea(){double area=0;area=this.height*this.width;System.out.println("矩形的面积为"+area); }public String toString(){String recStr="矩形的高度:"+this.getHeight()+"宽度:"+this.getWidth() +"颜色:"+this.getColor();return recStr; }public static void main(String[] args) {mianji rec=new mianji(3, 4, "红色");rec.getArea();System.out.println(rec.toString());}}2. 运行以下两个程序,分析结果(从形参和实参传递在传递基本类型和引用类型时的差异来分析)(1)class TestReference{public static void main(String[] args){int x=2;TestReference tr = new TestReference();System.out.print(x);tr.change(x);System.out.print(x);}public void change(int num){num = num + 1;}}(2)public class Foo {public static void main (String [] args) {StringBuffer a = new StringBuffer (“A”); //创建一个字符串,内容为AStringBuffer b = new StringBuffer (“B”);operate(a,b);//调用了Foo类的一个类方法System.out.printIn(a + “,” +b);}static void operate (StringBuffer x, StringBuffer y) {x.append(y); //将在x后连接字符串yy = x;}}答:当你在定义一个方法的时候,比如void setter(int i){};其中的参数i就是形参形参是这个方法的局部变量只能在方法体中使用当你调用这个方法的时候,比如setter(a);此时a就是实参实参a把他的值传递给形参i基本数据类型实参传递给形参的是值对象实参传递给形参的是对象的引用3.运行以下程序(注意包的建立与使用)(1)编辑Calculate.java,设保存在D:\myjava目录下。

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中类与对象的概念,以及如何正确地创建和使用它们。

通过实际操作,我们掌握了类的继承与多态的概念,并成功在程序中应用它们。

这将为我们今后的学习和工作打下坚实的基础。

实验三:类与对象(bo)

实验三:类与对象(bo)

实验三Java类与对象【实验目的】1)理解面向过程与面向对象区别2)理解面向对象的三大特征3)掌握类声明的方法4)掌握构造方法5)掌握对象的创建方法与创建机制6)掌握成员变量、类变量和局部变量区别7)掌握成员方法与类方法区别8)掌握函数的重载9)掌握4种访问修饰符的区别【实验环境】JDK1.6+Eclpise3.2【实验准备】1)复习课件中理论知识2)练习课堂所讲的例子【实验内容】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对象,并给两个成员变量赋值,调用周长和面积的方法,输出周长和面积。

【实验过程及结果】实验代码及结果:1. package arp;public class Monkey {//创建类// 4个属性(成员变量)private String name;private int weight;private int age;private static String love="吃香蕉";public Monkey(){}//有参构造方法public Monkey(String name,int weight,int age) {=name;this.weight=weight;this.age=age;}//爬树public void climbTree(String name,int height){System.out.println(name+"会爬树,能爬"+height+"米");}//测试public static void main(String [] args){Monkey monkey2=new Monkey();="猪猪";monkey2.weight=50;monkey2.age=3;Monkey monkey3=new Monkey("猫猫",45,2);System.out.println(+"体重为"+monkey2.weight +"年龄为:"+monkey2.age+"爱好为:"+monkey2.love);System.out.println(+"体重为:"+monkey3.weight+"年龄为:"+monkey3.age+"爱好为:"+monkey3.love);monkey2.climbTree(,100);monkey3.climbTree(,88);}}2. package arp;//创建类public class Rectangle {//两个成员变量private double width;private double height;//计算周长public double getLength(){return (this.width+this.height)*2;}//计算面积public double getArea(){return this.width*this.height;}public static void main(String[] args) {Rectangle rectangle =new Rectangle();rectangle.width=100;rectangle.height=50;System.out.println("周长为:"+rectangle.getLength());System.out.println("面积为:"+rectangle.getArea());}}【实验感想】本次实验态度鲜明的提出了面向对象和面向过程的区别以及面向对象的三大特征,并由此引入了类的声明,对象的创建方法等实质性问题,在上机练习中通过创建相应的类,给我留下了对于类和对象的深刻认识,对于这些新接触的知识还要在进一步的学习中去感悟和理解它所包含的实在的东西。

Java实验报告2 类和对象

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实验报告——对象和类

成绩:面向对象原理与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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安邮电大学(计算机学院)课实验报告实验名称:类与对象专业名称:计算机科学与技术班级:计科1405班学生:高宏伟学号:04141152指导教师:霞林实验日期:2016.9.29一、实验目的通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法。

二、实验要求1.编写一个创建对象和使用对象的方法的程序。

2.编写一个包含类成员和示例成员的程序。

3.编写一个使用Java包的程序。

三、实验容(一)三角形、梯形和圆形的类封装✧实验要求:编写一个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){this.sideA=a; //【代码1】参数a,b,c分别赋值给sideA,sideB,sideCthis.sideB=b;this.sideC=c;if((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB)//【代码2】a,b,c构成三角形的条件表达式{boo=true;//【代码3】给boo赋值。

}else{boo=false;【代码4】//给boo赋值。

}}double getLength(){return sideA+sideB+sideC;【代码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){this.sideA=a;this.sideB=b;this.sideC=c; //【代码6】参数a,b,c分别赋值给sideA,sideB,sideCif((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB【代码7】) //a,b,c构成三角形的条件表达式{boo=true;【代码8】//给boo赋值。

}else{boo=false;【代码9】//给boo赋值。

}}}class Lader{double above,bottom,height,area;Lader(double a,double b,double h){this.above=a;this.bottom=b;this.height=h;【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height}double getArea(){return (above+bottom)*height/2;【代码11】//方法体,,要求计算出area返回}}class Circle{double radius,area;Circle(double r){ this.radius=r;【代码12】//方法体}double getArea(){ return Math.PI*radius*radius;//【代码13】方法体,要求计算出area返回}double getLength(){return Math.PI*2*radius; //【代码14】getArea方法体的代码,要求计算出length 返回}void setRadius(double newRadius) { radius=newRadius; }double getRadius(){return radius; }}public class AreaAndLength {public static void main(String args[]){double length,area;Circle circle=null;Trangle trangle;Lader lader;circle=new Circle(5);【代码15】//创建对象circletrangle=new Trangle(3,4,5); 【代码16】//创建对象trangle。

lader=new Lader(2,3,4);【代码17】//创建对象laderlength=circle.getLength();System.out.println("圆的周长:"+length);area=circle.getArea();System.out.println("圆的面积:"+area);length=trangle.getLength();System.out.println("三角形的周长:"+length);area=trangle.getArea();System.out.println("三角形的面积:"+area);area=lader.getArea();System.out.println("梯形的面积:"+area);trangle.setABC(12, 34, 1);area=trangle.getArea();System.out.println("三角形的面积:"+area);length=trangle.getLength();System.out.println("三角形的周长:"+length);}}实验后的练习:1. 程序中仅仅省略【代码15】,编译能通过吗?不能通过,提示如下Exception in thread "main" ng.Error: Unresolved compilationproblems:The local variable circle may not have been initializedThe local variable circle may not have been initializedat AreaAndLength.Trangle$AreaAndLength.main(Trangle.java:85)2. 程序中仅仅省略【代码16】,编译能通过吗?不能通过,提示如下Exception in thread "main" ng.Error: Unresolved compilationproblems:The local variable trangle may not have been initializedThe local variable trangle may not have been initializedThe local variable trangle may not have been initializedThe local variable trangle may not have been initializedThe local variable trangle may not have been initializedat AreaAndLength.Trangle$AreaAndLength.main(Trangle.java:89)3. 程序中仅仅省略【代码15】,运行时出现怎样的异常提示?Exception in thread "main" ng.Error: Unresolved compilationproblems:The local variable circle may not have been initializedThe local variable circle may not have been initializedat AreaAndLength.Trangle$AreaAndLength.main(Trangle.java:85) 1.给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC。

double getsideA(){ return sideA; }double getsideB(){ return sideB; }double getsideC(){ return sideC; }2.让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。

circle.setRadius(3);System.out.println("修改后的半径为"+circle.getRadius());System.out.println("修改后的面积为"+circle.getArea());System.out.println("修改后的周长为"+circle.getLength());(二)实例成员与类成员。

✧实验要求:按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。

✧程序运行效果示例:程序运行效果如下图所示:✧程序模板:Example.javaclass A{【代码1】//声明一个float型实例变量a【代码2】//声明一个float型类变量b,void setA(float a){【代码3】//将参数a的值赋值给成员变量a}void setB(float b){【代码4】//将参数b的值赋值给成员变量b}float getA(){return a;}float getB(){return b;}void inputA(){System.out.println(a);}static void inputB(){System.out.println(b);}}public class Example{public static void main(String args[]){A.b=100; //通过类名操作类变量b,并赋值100A.inputB(); //通过类名调用方法inputB()A cat=new A();A dog=new A();cat.setA(200); //cat调用方法setA(int a)将cat的成员a的值设置为200cat.setB(400); //cat调用方法setB(int b)将cat的成员b的值设置为400dog.setA(150); //dog调用方法setA(int a)将dog的成员a的值设置为150dog.setB(300); //dog调用方法setB(int b)将dog的成员b的值设置为300cat.inputA(); //cat调用inputA()。

相关文档
最新文档