java实验报告有理数的类封装
java封装实验报告总结
java封装实验报告总结一、实验目的本次实验的主要目的是理解并掌握Java语言中的封装特性,通过实际操作和代码编写,深入理解面向对象编程的基本思想。
二、实验原理封装是面向对象的三大特性之一,其主要思想是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问。
如果需要访问这些信息,必须通过该类提供的公共接口进行访问。
这样可以保证对象的安全性,同时也能提高代码的可维护性和复用性。
三、实验步骤1. 定义一个类,如Person类,包含姓名、年龄等属性。
2. 在Person类中定义getter和setter方法,用于获取和设置属性值。
3. 在主函数中创建Person类的对象,并通过getter和setter方法访问和修改对象的属性。
四、实验代码```javapublic class Person {private String name;private int age;public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}public class Main {public static void main(String[] args) {Person person = new Person();person.setName("Tom");person.setAge(20);System.out.println(person.getName());System.out.println(person.getAge());}}```五、实验结果与分析运行上述代码,输出为"Tom"和"20",说明我们成功地通过getter和setter方法访问和修改了对象的属性。
java实验报告(二)
实验报告(二)姓名:学号:日期:2015.4.10实验名称:面向对象编程一、实验目的及要求实验目的:通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,熟悉类的封装方法以及如何创建类和对象,熟悉成员变量和成员方法的特性,熟悉类的继承性和多态性的作用,熟悉包、接口的使用方法,掌握OOP方式进行程序设计的方法。
实验要求:1、编写程序实现类的定义和使用。
2、编写不同成员和不同成员方法修饰方法的程序。
3、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序和多态性(成员方法重载、构造方法重载)的程序。
4、编写接口的定义和使用的程序。
5、编写包的定义和使用的程序。
二、实验环境Windows XP操作系统,JA V A运行环境实验感想1. java编辑环境中蓝色的是关键字,绿色的是注释,红色的是系统已经定义的包、类或变量; 学习一门语言应该经常性的上机练习,而不是一段时间集中练习几个小时;2. 参数间应该以','隔开;3.java中规定必须要写返回值类型,即Java没有规定方法的默认返回值类型;4. java区分大小写;5. 用户标识第一个字符不应该为数字,Java文件名应该与Java文件内的主类保持一致;6.类只能使用静态方法,对象既可以使用静态方法又可以使用实例方法;静态变量是属于类的,为所有对象共同拥有,实例变量则属于各个对象本身;7.子类的构造方法应通过super()的方式调用父类构造方法;8.在一个类中,方法名可以重名,只要参数不一样就可以了,但变量即使类型不一样,变量名也不能一样;9.在java中,变量必须先要初始化后才能使用;三、实验源程序及运行结果1、(1)定义一个满足如下要求的Date类:a.用下面的格式输出日期:日/月/年b.可运行在日期上加一天操作c.设置日期并用该类编写一个显示当前日期的程序。
class Date1{int date,month,year;public void ShowDate()//以固定格式显示日期{System.out.println(date+"/"+month+"/"+year);}public void AddDate()//在目前日期下加一天{date=date+1;switch(month){ case 1:case 3:case 5:case 7:case 8:case 10:if(date>31){date=date-31;month=month+1;}break;case 12:if(date>31)//当月份为12月31号时,日期加1,年份也应该加1{date=date-31;month=1;year=year+1;}break;case 2: if(this.IsLeapYear())//以是否为闰年为依据进行处理{if(date>29){date=date-29;month=month+1;}}else{if(date>28){date=date-28;month=month+1;}}break;case 4:case 6:case 9:case 11:if(date>31){date=date-31;month=month+1;}break;default:}}public void SetDate(int date,int month,int year)//设置日期{this.date=date;this.month=month;this.year=year;}public Date1(int date,int month,int year)//构造方法{this.date=date;this.month=month;this.year=year;}public boolean IsLeapYear()//判断是否为闰年{boolean x=year%400==0||year%100!=0&&year%4==0;return x;}}public class Test11{public static void main(String args[])//Java文件内的主类只能有一个{Date1 a=new Date1(28,2,2100);System.out.print("目前日期为:");a.ShowDate();a.AddDate();System.out.print("加完一天后的日期为:");a.ShowDate();}}1、(2)创建一个桌子Table类,该类中有桌子名称、重量、桌面宽度、长度及桌子高度属性。
实验二
3、学会通过get和set方式来改变成员变量的值,体会封装性
4、学会定义子类,并通过类对象调用父类方法
四、实验步骤(包括代码分析):
1、创建一个基类Person
class Person
{
String name="王二";
int age=30;
2、使用实例方法getInfo()显示个人信息
void getInfo()
{
System.out.println("Name:"+name);
System.out.println("Age:"+age);
}
}
派生类Teacher继承基类Person,包含实例字段teacherID字段,并重写方法GetInfo()
class Teacher extends Person
}
}
class sy2
{
public static void main(String[] args)
{
Teacher t=new Teacher();
t.getInfo();
}
}
六:思考题:
1、类的构造函数是什么时候被调用的?
答:对象被创建时构造函数被调用:
2、java里有没有多继承?
答:有,可以用接口实现多继承
{
Teacher t=new Teacher();
t.getInfo();
}
}
五、实验结果与分析(含程序、数据记录及分析和实验总结等):
class Person
{
String name="王二";
int age=30;
实验一Java面向对象基础实验报告参考模板
实验一Java面向对象基础、数组实验报告一、实验目的1. 理解面向对象编程基本思想2. 了解类的封装方法,以及如何创建类和对象3. 掌握面向对象程序设计的方法,了解类的继承性和多态性的作用4. 掌握Java 中的数组定义、引用二、实验要求编写程序时要注意体现面向对象思想,体会不同访问控制符的作用。
1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。
(要求:程序要有构造方法重载;要能体现类的多态性)2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。
3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。
三、实验内容及结果1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。
public class Vehicle {private String color;public Vehicle() {this("black");}public Vehicle(String color) {this.color = color;}public String toString() {return "this is a " + this.color + " vehicle";}}class Bus extends Vehicle {private int passagerNumber;public Bus() {this(50, "black");}public Bus(int number) {this(number, "black");}public Bus(int number, String color) {super(color);this.passagerNumber = number;}public String toString() {return super.toString().replace("vehicle", "bus")+ " , max passager number: " + this.passagerNumber;}}class Boat extends Vehicle {private String owner;public Boat() {super("black");this.owner = "nobody";}public Boat(String owner) {super("black");this.owner = owner;}public Boat(String owner, String color) {super(color);this.owner = owner;}public String toString() {return super.toString().replace("vehicle", "boat")+ " own by "+ this.owner;}}2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。
Java实验报告二[面向对象特性继承、封装、多态]
J a v a面向对象编程实验报告题目:继承、封装、多态专业:计算机科学与技术班级:学号: 2姓名:2014年 5 月 4 日一、实验目的与要求1、掌握面向对象编程中的封装特性3、掌握面向对象编程中的继承特性4、掌握面向对象编程中的多态特性实验内容根据如下类图创建每个类并进行以上内容的相关测试三、实施步骤1):在Eclipse中创建一个抽象的MobilePhone父类,用abstract关键字修饰这个类,并且写入构造方法,类名如:MobilePhone_FatherClass2):再给MobilePhone父类编写入一些抽象的属性和方法,并实现get(),set()方法(获取属性的方法)3)再创建四个子类继承MobilePhone父类,实现Student父类的方法,并且分别写入这些子类的自己的方法:NOKIA1:message();NOKIA2:netpay();MOTOROLA1:message();MOTOROLA2:metpay();4)再创建一个测试类:MobilePhoneTest ,实例化NOKIA1,NOKIA2,MOTOROLA1,MOTOROLA2四个子类,实现多态的输出!四、实验结果整个工程的类结构如下:①:MobilePhone父类:MobilePhone_FatherClass②:四个子类:NOKIA1,NOKIA2,MOTOROLA1,MOTOROLA2:(方法类似,只展示一个):③:测试类:MobilePhoneTest④:实验结果:五、出现的问题及解决的方法问题:抽象类的分析,多态的实现解决方法:关键字abstract,需要继承父类使用extends关键字,不使用abstract修饰的类也是可以作为父类的!通过这次实验,我懂得了封装和继承是实现多态的前提,使自己更深的理解的封装,继承,多态的重要性。
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实验报告有理数的类封装篇一:JAVA实验报告学生实验报告学院:用友软件学院课程名称:Java程序设计专业班级:软件工程b01班姓名:尚丽娟学号:0088234学生实验报告(一)一、实验综述1、实验目的及要求实验目的:1.学习数据表示、运算符和表达式;2.认识Java的基本数据类型;3.养成良好的程序调试和编程风格。
试验要求:编写程序,读入0到1000的一个整数并将其各位数字之和赋值给一个整数。
如,整数932各位数字之和为14。
2、实验仪器、设备或软件1.个人计算机pc;2.eclipse编程环境。
二、实验过程(实验步骤、记录、数据、分析)(1)步骤一1.打开eclipse,点击文件,新建一个名为1的项目,在新建一个名为package的包,然后在新建一个名为exercise1的类。
然后在代码输入框输入代码packagepackage;importjavax.swing.Joptionpane;publicclassexercis1{/***@paramargs*/publicstaticvoidmain(string[]args){//ToDo自动生成方法存根stringnumberstring=Joptionpane.showInputDialog(null, "enteranumberbetween0and1000","numberInput",Joptionpane.QuesTIon_messAge);intnumber=Integer.parseInt(numberstring);intfirstnumber=number/100;intsecondnumber=number/10%10;intthirdnumber=number%10;intsum=firstnumber+secondnumber+thirdnumber;system.out.println("Thesumis"+sum);system.exit(0);}}(2)步骤二点击运行,会出现以下输入框,我们输入923.在控制台得到的结果如下:三、结论1、实验结果能成功运行,没有错误,并且会看到输入框,并且在输入框中输入数字后,运行结果会在控制台中显示出正确的结果。
java实验二对象的抽象、封装、继承、多态
实验二:对象的抽象、封装、继承、多态一、实验目的1.掌握类的声明。
2.掌握对象的创建。
3.掌握方法的定义和调用。
4.掌握构造函数的使用。
5.掌握类的继承方法。
6.掌握变量的继承和覆盖。
7.掌握方法的继承、重载和覆盖。
8.了解接口的实现方法。
二、实验内容1.编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,再定义一个方法setDemo对这三个变量进行初始化,然后定义一个方法求立方体的体积。
创建一个对象,求给定尺寸的立方体的体积。
2.将上题的方法setDemo改用构造函数实现初始化。
三、思考题1.一个方法或一个块内定义的变量是否可以在方法外或块外使用?这种变量称为什么?方法的形式参数是否可以在方法之外使用?2.为什么说构造函数是一种特殊的方法?特殊在哪里?构造函数什么时候执行?被谁调用?3.编程创建一个Point类,在其中定义两个变量表示一个点的坐标值,再定义构造函数初始化为坐标原点,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。
并创建一个对象验证。
提示:关键代码如下:void move(int newX,int newY){x=newX;y=newY;}void print(){System.out.println(name+":x="+x+" y="+y);}…p.print();p.move(50,50);System.out.println("**after moving**");p.print(); //call method of an object4.定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"和"查询余额"。
定义主类,创建帐户类的对象,并完成相应操作。
java实验2实验报告
引言概述:实验目的:本次实验的主要目的是通过设计和实现一个简单的Java程序,加深对Java编程语言的理解,培养对面向对象编程思想的应用能力。
实验要求学生熟悉Java语法和类的基本概念,并能够正确运用这些知识编写出符合要求的程序。
实验过程:1.确定实验题目和要求:根据实验要求,确定需要实现的功能和要求,并理解题目中的各个概念和要求。
2.设计程序结构:根据题目要求和功能需求,设计程序的类结构、方法和变量。
要求合理设计类和对象的关系,充分运用封装、继承和多态等面向对象编程的特性。
3.编码实现:根据设计好的程序结构,使用Java语言进行编码实现。
编写各个类和方法的代码,确保代码的规范和可读性。
4.调试和测试:编写完代码后,进行充分的调试和测试工作。
确保程序能够正确运行并符合预期的功能需求。
5.优化和改进:对程序进行优化和改进,提高程序的性能和可维护性。
可以通过重构代码、增加异常处理等方式进行优化。
6.提交实验报告:实验完成后,撰写实验报告,对实验过程和结果进行总结和分析。
实验结果:实验结果表明,本次实验成功实现了所要求的功能。
通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了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程序设计
姓名
学号
班级
成绩
设备名称及软件环境
Eclipse
实验名称
类的继承和封装
实验日期
2013-4-11
p2.Printme();
}
publicvoidPrintme(){
System.out.println("z="+z);
}
}
classa1{
intx=10;
inty=31;
publicvoidPrintme(){
System.out.println("x="+x+" y"+y);
}
}
五.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
一.实验内容
掌握类的定义,类的继承,及相关语法规则,掌握对类成员的使用,理解类的封装。
二.重点及难点
类的继承及相关语法规则,理解类的封装。
三.理论分析或算法分析
1. final修饰符
用final修饰符修饰的类被称为最终类。最终类不能被任何其他类所继承。定义最终类的目的有三:
(1)用来完成某种标准功能;
P1 n=newP1();
n.f(g);
n.i=40;
n.j++;
g.drawString("i+"+n.i, 20,70);
g.drawString("j="+n.j, 20, 90);
Java语言实验指导书-实验07 类的封装、多态和继承
一、实验目的
(1)掌握类的继承机制。
(2)熟悉类中成员变量和方法的访问控制。
(3)熟悉方法或构造方法多态性。
二、实验内容
(1)设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成
员变量x和y,获取和设置x和y值的public方法。
(2)设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径
的protected,类型的成员变量r、获取和设置r值的public方法、计算圆面积的一public方法。
(3)设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量h、获取和设置h值的public方法、计算圆柱体体积的public方法。
(4)建立若干个Cylinder对象,输出其轴心位置坐标、半径、高及其体积的值。
三、实验要求
(1)每个类包含无参数和有参数的构造方法。
构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。
(2)子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。
类的设计_实验报告
一、实验目的1. 理解面向对象编程的基本概念,包括类、对象、继承、封装和多态。
2. 掌握类的设计方法,能够根据需求设计出合适的类结构。
3. 通过实验加深对面向对象编程的理解,提高编程能力。
二、实验环境1. 开发工具:Java开发环境(如Eclipse、IntelliJ IDEA等)2. 操作系统:Windows 10、macOS、Linux等3. 编程语言:Java三、实验内容1. 类的基本概念2. 类的设计方法3. 类的继承与多态4. 类的封装5. 实验案例分析四、实验步骤1. 类的基本概念(1)定义一个名为“Person”的类,包含属性:姓名、年龄、性别。
(2)为“Person”类添加构造方法,用于初始化对象的属性。
(3)为“Person”类添加一个方法,用于输出对象的属性。
2. 类的设计方法(1)定义一个名为“Student”的类,继承自“Person”类。
(2)在“Student”类中添加属性:学号、班级。
(3)为“Student”类添加构造方法,用于初始化对象的属性。
(4)为“Student”类添加一个方法,用于输出对象的属性。
3. 类的继承与多态(1)定义一个名为“Teacher”的类,继承自“Person”类。
(2)在“Teacher”类中添加属性:职称、教学经验。
(3)为“Teacher”类添加构造方法,用于初始化对象的属性。
(4)为“Teacher”类添加一个方法,用于输出对象的属性。
(5)定义一个方法,用于接收一个“Person”类型的参数,并调用其输出属性的方法。
4. 类的封装(1)将“Person”类的属性设置为私有(private)。
(2)为“Person”类的每个属性添加对应的getter和setter方法。
5. 实验案例分析(1)定义一个名为“School”的类,包含以下属性:校长、教师列表、学生列表。
(2)为“School”类添加方法,用于添加教师和学生。
(3)为“School”类添加方法,用于输出所有教师和学生的信息。
实验报告二 Java类的封装、继承、多态
System.out.println ("坐标为:"+this.get_x()+" "+this.get_z()); } } "+this.get_y()+"
3. 思考题
1. 什么是类的多态性。 同一操作作用于不同的对象,可以有不同的解释,产生不 同的执行结果,这就是多态性。 编译时的多态性:编译时的多态性是通过重载来 实现的。对于非虚的成员来说,系统在编译时, 根据传递的参数、返回的类型等信息决定实现何 种操作。 运行时的多态性:运行时的多态性就是指直到系 统运行时,才根据实际情况决定实现何种操作。 四.程序代码
} } for(i=0;i<10;i++){ System.out.print("第"+(i+1)+"个点"); array[i].print(); } } }
2. 创建一个数组,随机生成Point2D或者Point3D的对 象放于其中。最后依次调用数组中每个对象的“打 印方法”,显示数组中存储的对象是什么。 提示:ng..Math.random()方法 或者 java.util.Random类 2.2 设计工作 设计思路: 构造Point 2D类,私有成员x,y存放2D点位置坐标,构造函 数传入坐标值。Offset()函数平移2D点,get_x(),get_y()分别 返回x,y坐标。Print()函数打印2D点坐标。再构造继承了2D类 的Point3D类,将上述2D点函数覆盖扩充到3D。创建Point 2D的对象数组,存放随机产生的Point 2D或Point 3D对象。 用 java.util.Random方法产生随机数。 类图:
类的分装实验报告
一、实验目的1. 理解封装的概念及其在面向对象编程中的重要性。
2. 掌握如何使用Java语言实现类的封装。
3. 学会使用访问控制符(public、private、protected)来控制成员的访问权限。
4. 理解静态成员和实例成员的区别。
二、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse IDE3. 编程语言:Java三、实验内容1. 创建一个名为“Person”的类,包含以下成员变量:- private String name; // 姓名- private int age; // 年龄- private String id; // 身份证号2. 创建一个名为“Person”的类,包含以下成员方法:- public String getName(); // 获取姓名- public void setName(String name); // 设置姓名- public int getAge(); // 获取年龄- public void setAge(int age); // 设置年龄- public String getId(); // 获取身份证号- public void setId(String id); // 设置身份证号3. 在主类“Main”中,创建一个“Person”对象,并通过访问控制符进行封装测试。
四、实验步骤1. 打开Eclipse IDE,创建一个名为“Experiment”的Java项目。
2. 在“Experiment”项目中,创建一个名为“Person”的类。
3. 在“Person”类中,定义成员变量name、age和id,并使用private关键字进行封装。
4. 在“Person”类中,定义成员方法getName、setName、getAge、setAge、getId和setId,并使用public关键字暴露给外部。
5. 在主类“Main”中,创建一个“Person”对象,并调用其成员方法进行测试。
java类的封装实验报告
实验四、类的封装一、实验目的1. 掌握类的声明和定义;2. 理解有静态成员和非静态成员变量的区别;3. 理解基本参数和引用参数的区别;4. 掌握类构造方法的编写;5. 实现类的方法;6. 掌握创建类实例的方法;7. 学会定义和使用具有重载方法的继承类;8. 掌握方法的重新定义。
二、实验内容1.以下程序运行的结果是。
public classsy4_1{public static void main(String[] args) {P owerp=new Power();p.ff2(10,10);S ystem.out.printl n("方法调用后 x="+p.x+", y="+p.y);}}classPower{int x=10, y=10;void ff2(int passX, int passY){System.out.printl n("初始时x="+x+", y="+y);x=passX*passX;y=passY*passY;System.out.printl n("方法调用中 x="+x+", y="+y);}}2.建立日期类及日期对象的简单引用,程序结构如下,写出完整代码。
public classMyDate0 //声明日期类{ int year, month, day; //成员变量void set(int y, int m, int d) { ... } //成员方法,设置日期public String toStri ng() { … } //成员方法返回中文日期public static void main(String args[]) // 主方法{….//创建日期对象d1….//显示d1 的中文日期….//设置d1 的成员变量为今天日期….//显示设置后 d1 的中文日期} // end main} // end class//代码如下:packag e com.text;public classMyDate {int year,month,day;void setDat e(int y,int m,int d){this.year=y;this.month=m;this.day=d;}public String toStri ng(){return (this.year+"年"+this.month+"月"+this.day+"日");}public static void main(String[] args) {// TODO Auto-genera ted method stubMyDate d1=new MyDate();System.out.printl n(d1.toStri ng());d1.setDat e(2014, 9, 17);System.out.printl n(d1.toStri ng());}}3.创建学生类S tuden t来完成下面问题。
java实验报告有理数的类封装
华中科技大学文华学院《Java程序设计》实验报告实验三:有理数的类封装专业班级:通信工程2008级1班姓名:学号:时间:实验三:有理数的类封装1、实验目的:让学生学习使用类来封装对象的属性和功能。
2、实验要求:希望程序能对分数(分子分母都是整数)进行四则运算,而且两个分数四则运算的结果仍然是分数。
分数也称有理数。
本实验要求用类实现对有理数的封装。
有理数有两个重要的成员:分子和分母,另外还有重要的四则运算。
编写一个java应用程序,该程序中有一个Rational(有理数)类,具体要求如下:※Rational类有两个int型的成员变量,名字分别为numberator(分子)和denominator(分母)。
※提供Rational add(Rational r)方法,即有理数调用该方法与参数指定的有理数做加法运算,并返回一个Rational对象。
※提供Rational sub(Rational r)方法,即有理数调用该方法与参数指定的有理数做减法运算,并返回一个Rational对象。
※提供Rational muti(Rational r)方法,即有理数调用该方法与参数指定的有理数做乘法运算,并返回一个Rational对象。
※提供Rational div(Rational r)方法,即有理数调用该方法与参数指定的有理数做除法运算,并返回一个Rational对象。
3、程序效果图4、程序代码(主要语句有注释!)5、实验思考问题实验内容回答评语在Computer.java增加计算有理数除法的代码在Computer.java增加计算1+3/2+5/3+8/5+13/8…前20项和的代码6、实验总结及心得附录:程序摸版Rational.javapublic class Rational {int numerator,denominator;Rational(){}Rational(int a,int b){setNumeratorAndDenominator(a,b);}void setNumeratorAndDenominator(int a,int b){ //设置分子和分母int c=f(Math.abs(a),Math.abs(b)); //计算最大公约数numerator=a/c;denominator=b/c;if(numerator<0&&denominator<0){numerator=-numerator;denominator=-denominator;}}int getNumerator() {return numerator;}int getDenominator() {return denominator;}int f(int a,int b){ //求a和b的最大公约数if(a<b){int c=a;a=b;b=c;}int r=a%b;while(r!=0){a=b;b=r;r=a%b;}return b;}Rational add(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b+denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational sub(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b-denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational muti(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational div(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b;int newDenominator=denominator*a;Rational result=new Rational(newNumerator,newDenominator);return result;}}Computer.javapublic class Computer {public static void main(String args[]) {Rational r1;【代码1】//创建分子、分母分别为1和5的有理数r1Rational r2;【代码2】//创建分子、分母分别为3和2的有理数r2Rational result=【代码3】//r1调用方法和r2做加法运算int a=【代码4】// result调用方法返回自己的分子int b=【代码5】// result调用方法返回自己的分母double p=a;double q=b;double doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.print("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的和等于");System.out.println(a+"/"+b+"="+doubleResult);r1.setNumeratorAndDenominator(4,7);r2.setNumeratorAndDenominator(-5,20);result=r1.muti(r2);a=result.getNumerator();b=result.getDenominator();p=a;q=b;doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.print("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的积等于");System.out.println(a+"/"+b+"="+doubleResult);}}答案代码Rational.javapublic class Rational {int numerator,denominator;Rational(){}Rational(int a,int b){setNumeratorAndDenominator(a,b);}void setNumeratorAndDenominator(int a,int b){ //设置分子和分母int c=f(Math.abs(a),Math.abs(b)); //计算最大公约数numerator=a/c;denominator=b/c;if(numerator<0&&denominator<0){numerator=-numerator;denominator=-denominator;}}int getNumerator() {return numerator;}int getDenominator() {return denominator;}int f(int a,int b){ //求a和b的最大公约数if(a<b){int c=a;a=b;b=c;}int r=a%b;while(r!=0){a=b;b=r;r=a%b;}return b;}Rational add(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b+denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational sub(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b-denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational muti(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational div(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b;int newDenominator=denominator*a;Rational result=new Rational(newNumerator,newDenominator);return result;}}Computer.javapublic class Computer {public static void main(String args[]) {Rational r1;r1=new Rational(1,5);//创建分子、分母分别为1和5的有理数r1Rational r2;r2=new Rational(3,2);//创建分子、分母分别为3和2的有理数r2Rational result=r1.add(r2); //r1调用方法和r2做加法运算int a=result.getNumerator(); // result调用方法返回自己的分子int b=result. getDenominator(); // result调用方法返回自己的分母double p=a;double q=b;double doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.print("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的和等于");System.out.println(a+"/"+b+"="+doubleResult);r1.setNumeratorAndDenominator(4,7);r2.setNumeratorAndDenominator(-5,20);result=r1.muti(r2);a=result.getNumerator();b=result.getDenominator();p=a;q=b;doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.print("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的积等于");System.out.println(a+"/"+b+"="+doubleResult);}}。
有理数的类封装
题目:编写一个Java应用程序,改程序中有一个Ratinal(有理数)类。
1.Rational 类有两个int 型的成员变量,名字分别为numerator(分子)和denominator(分母)。
2.提供Rational add(Rational r)方法,即有理数调用该方法与参数指定的有理数做加法运算,并返回一个Rational对象。
3.提供Rational sub(Rational r)方法,即有理数调用该方法与参数指定的有理数做减法运算,并返回一个Rational对象。
4.提供Rational muti(Rational r)方法,即有理数调用该方法与参数指定的有理数做乘法运算,并返回一个Rational对象。
5.提供Rational div(Rational r)方法,即有理数调用该方法与参数指定的有理数做加法运算,并返回一个Rational对象。
代码:(两个文件)Rational.javapackage com.chapter4;public class Rational {int numerator,denominator; //Rational类的两个成员变量分子和分母Rational(){}Rational(int a,int b){setNumeratorAndDenominator(a,b);}void setNumeratorAndDenominator(int a, int b) {//设置分子和分母// int c=f(Math.abs(a),Math.abs(b));//计算最大公约数// numerator=a/c;// denominator=b/c;numerator=a;denominator=b;if(numerator<0&&denominator<0){numerator=-numerator;denominator=-denominator;}}int getNumerator(){return numerator;}int getDenominator(){return denominator ;}/* int f(int a , int b ) {//求a和b的最大公约数if(a<b){int c=a;a=b;b=c;int r=a%b;while(r!=0){a=b;b=r;r=a%b;}}return b;}*/Rational add(Rational r){int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b+denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational sub(Rational r){int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b-denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational muti(Rational r){int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational div(Rational r){int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b;int newDenominator=denominator*a;Rational result=new Rational(newNumerator,newDenominator);return result;}}Computer.java:package com.chapter4;public class Computer {public static void main(String[] args) {Rational r1 ;r1=new Rational(1,5); //创建分子分母分别为1和5的有理数r1r1.denominator=5;Rational r2 ;r2=new Rational(3,2); //创建分子分母分别为3和2的有理数r2// System.out.println("r2"+r2.getNumerator()+"/"+r2.getDenominator());Rational result=r1.add(r2) ; //r1调用方法和r2做加法运算int a=result.getNumerator();// result调用方法返回自己的分子int b=result.getDenominator() ;// result调用方法返回自己的分母double p=a;double q=b;double doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.println("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的和等于:");System.out.println(a+"/"+b+"="+doubleResult);r1.setNumeratorAndDenominator(4, 7);r2.setNumeratorAndDenominator(-5, 20);result=r1.muti(r2);a=result.getNumerator();b=result.getDenominator();p=a;q=b;doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.println("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的积等于:");System.out.println(a+"/"+b+"="+doubleResult);}}运行结果图:知识点:学会使用类来封装对象的属性和功能。
Java第二周实验总结《Java的基本语法与类库》
Java第⼆周实验总结《Java的基本语法与类库》1.本周学习总结引⽤类型| - 类| - 数组| - 接⼝基本数据类型1.整形数据| - byte < short < int < long2.浮点型数据| - float < double3.字符型| - char4.布尔型| - boolean了解了什么是⾃动拆箱什么是⾃动装箱。
学会了使⽤码云上传⾃⼰的代码,将本地代码上传⾄码云,再将码云上的项⽬保存到本地。
2.书⾯作业1.String-使⽤Eclipes关联jdk源代码1.1 查看String对象的源代码(截图),分析String使⽤什么来存储字符串?答:从⼆三两图可以分析,String是使⽤字符数组来储存字符串的。
1.2分析其构造函数public String (char []value)的作⽤。
答:此String构造函数的作⽤是将字符型数组转换为字符串。
1.3阅读public String replace(char oldChar,char newChar)⽅法的代码,回答String的不可变性在该函数中如何体现?(重点)答:在该String⽅法的代码中,String的不可变性体现在,如果有满⾜要求的char oldChar和char newChar输⼊的话就要在结束的时候return new String(buf,true)来返回⼀个新的String;如果原Stirng字符串没有被改变就通过return this来返回调⽤这个⽅法的原字符串。
1.4简述String与字符数组的关系,使⽤字符数组就可以处理字符串,为什么还需要String呢?答:String类的实现是通过字符数组的形式来实现的。
如果我们⼀直使⽤字符数组来处理字符串,就需要不断地编写相同的代码,⽽String类的使⽤,且其中有许多使⽤的⽅法,能够极⼤的减少代码的覆写率,提⾼编程开发的效率。
2.StringBuilder2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使⽤StringBuilder⽽不是String?答:因为在此题⽬中,运⾏次数n是未知的,有可能n的数值很⼤,那么⽤String来修改字符串的话,就会导致要不断地向内存申请空间,从⽽造成空间和时间上的巨⼤浪费,⽽⽤StringBuilder来修改字符串的话,就不会造成内存空间的浪费,因为StringBuilder是可变类型。
实验三 类的封装、继承和多态 - search readpudncom
实验三类的封装、继承和多态一、实验目的1. 复习、理解OOP的三大特征——封装、继承和多态。
2. 学会使用Java编写简单的类。
理解类的属性和方法。
3. 掌握关键字private, protected, public的作用。
4. 掌握多态的概念。
二、实验内容1、定义一个复数类complex,它的内部具有两个实例变量:realPart和imagPart,分别代表复数的实部和虚部,编程实现要求的数学运算。
(1) 实现两个复数相加。
复数加运算的原则是:复数的实部和虚部分别相加。
(2) 实现两个复数相减。
复数减运算的原则是:复数的实部和虚部分别相减。
(3) 输出运算结果,判断是否正确。
2、定义一个日期类date,确保具有如下功能:(1) 输出日期的格式具有如下几种:YYYY MM DDMM DD YYYYDD MM YYYY(2) 采用重载构造函数,以上述日期格式数据为参数,创建 date类型的对象。
3、定义一个整形集合类integerSet。
这种类型的对象可以存储10个20至80之间的整数,即它的内部有一个整形数组存储数据。
编程:(1) 判断两个integerSet类对象S1和S2是否相等。
提示:集合相等的前提是所有元素相等。
(2) 输出两个集合对象的交集。
(3) 输出两个集合对象的并集。
(4) 将一个整形数据插入到一个集合对象中。
从一个集合中删除某一个元素。
4、写一个具有两个方法的基类base,并在第一方法内调用第二方法。
然后写一个派生类derived,并覆盖父类中的第二个方法。
产生一个derived类对象,将它向上类型转换(即转换为base类型),并调用第一个方法。
验证并解释运行结果。
三、实验结果和体会本次实验使用到的类的封装、继承和多态,在以前的C++学习中就是一个难点,至今仍然不能很好的运用和实现,在JAVA实验中,由于与C++中类的声明和使用有一些不同的地方,所以学习起来比较简单。
并且本次实验也只是让编写比较简单的类,虽然简单,但对于一些关键字如private, protected, public 的作用也能够很好的了解和掌握,对于多态的概念也有了一定的了解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华中科技大学文华学院《Java程序设计》实验报告实验三:有理数的类封装专业班级:通信工程2008级1班姓名:学号:时间:实验三:有理数的类封装1、实验目的:让学生学习使用类来封装对象的属性和功能。
2、实验要求:希望程序能对分数(分子分母都是整数)进行四则运算,而且两个分数四则运算的结果仍然是分数。
分数也称有理数。
本实验要求用类实现对有理数的封装。
有理数有两个重要的成员:分子和分母,另外还有重要的四则运算。
编写一个java应用程序,该程序中有一个Rational(有理数)类,具体要求如下:※Rational类有两个int型的成员变量,名字分别为numberator(分子)和denominator(分母)。
※提供Rational add(Rational r)方法,即有理数调用该方法与参数指定的有理数做加法运算,并返回一个Rational对象。
※提供Rational sub(Rational r)方法,即有理数调用该方法与参数指定的有理数做减法运算,并返回一个Rational对象。
※提供Rational muti(Rational r)方法,即有理数调用该方法与参数指定的有理数做乘法运算,并返回一个Rational对象。
※提供Rational div(Rational r)方法,即有理数调用该方法与参数指定的有理数做除法运算,并返回一个Rational对象。
3、程序效果图4、程序代码(主要语句有注释!)5、实验思考问题实验内容回答评语在Computer.java增加计算有理数除法的代码在Computer.java增加计算1+3/2+5/3+8/5+13/8…前20项和的代码6、实验总结及心得附录:程序摸版Rational.javapublic class Rational {int numerator,denominator;Rational(){}Rational(int a,int b){setNumeratorAndDenominator(a,b);}void setNumeratorAndDenominator(int a,int b){ //设置分子和分母int c=f(Math.abs(a),Math.abs(b)); //计算最大公约数numerator=a/c;denominator=b/c;if(numerator<0&&denominator<0){numerator=-numerator;denominator=-denominator;}}int getNumerator() {return numerator;}int getDenominator() {return denominator;}int f(int a,int b){ //求a和b的最大公约数if(a<b){int c=a;a=b;b=c;}int r=a%b;while(r!=0){a=b;b=r;r=a%b;}return b;}Rational add(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b+denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational sub(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b-denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational muti(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational div(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b;int newDenominator=denominator*a;Rational result=new Rational(newNumerator,newDenominator);return result;}}Computer.javapublic class Computer {public static void main(String args[]) {Rational r1;【代码1】//创建分子、分母分别为1和5的有理数r1Rational r2;【代码2】//创建分子、分母分别为3和2的有理数r2Rational result=【代码3】//r1调用方法和r2做加法运算int a=【代码4】// result调用方法返回自己的分子int b=【代码5】// result调用方法返回自己的分母double p=a;double q=b;double doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.print("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的和等于");System.out.println(a+"/"+b+"="+doubleResult);r1.setNumeratorAndDenominator(4,7);r2.setNumeratorAndDenominator(-5,20);result=r1.muti(r2);a=result.getNumerator();b=result.getDenominator();p=a;q=b;doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.print("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的积等于");System.out.println(a+"/"+b+"="+doubleResult);}}答案代码Rational.javapublic class Rational {int numerator,denominator;Rational(){}Rational(int a,int b){setNumeratorAndDenominator(a,b);}void setNumeratorAndDenominator(int a,int b){ //设置分子和分母int c=f(Math.abs(a),Math.abs(b)); //计算最大公约数numerator=a/c;denominator=b/c;if(numerator<0&&denominator<0){numerator=-numerator;denominator=-denominator;}}int getNumerator() {return numerator;}int getDenominator() {return denominator;}int f(int a,int b){ //求a和b的最大公约数if(a<b){int c=a;a=b;b=c;}int r=a%b;while(r!=0){a=b;b=r;r=a%b;}return b;}Rational add(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b+denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational sub(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b-denominator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational muti(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*a;int newDenominator=denominator*b;Rational result=new Rational(newNumerator,newDenominator);return result;}Rational div(Rational r) {int a=r.getNumerator();int b=r.getDenominator();int newNumerator=numerator*b;int newDenominator=denominator*a;Rational result=new Rational(newNumerator,newDenominator);return result;}}Computer.javapublic class Computer {public static void main(String args[]) {Rational r1;r1=new Rational(1,5);//创建分子、分母分别为1和5的有理数r1Rational r2;r2=new Rational(3,2);//创建分子、分母分别为3和2的有理数r2Rational result=r1.add(r2); //r1调用方法和r2做加法运算int a=result.getNumerator(); // result调用方法返回自己的分子int b=result. getDenominator(); // result调用方法返回自己的分母double p=a;double q=b;double doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.print("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的和等于");System.out.println(a+"/"+b+"="+doubleResult);r1.setNumeratorAndDenominator(4,7);r2.setNumeratorAndDenominator(-5,20);result=r1.muti(r2);a=result.getNumerator();b=result.getDenominator();p=a;q=b;doubleResult=p/q;System.out.print("分数"+r1.getNumerator()+"/"+r1.getDenominator());System.out.print("与分数"+r2.getNumerator()+"/"+r2.getDenominator()+"的积等于");System.out.println(a+"/"+b+"="+doubleResult);}}。