当前位置:文档之家› java实验四对象和类(抽象类、接口与包)

java实验四对象和类(抽象类、接口与包)

java实验四对象和类(抽象类、接口与包)
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:需要定义抽象类和接口,并用三角形、矩形和圆形来实现

里边定义的方法。

2、重写上面的程序,要求三角形,矩型,圆,多边型的类放到不同的包中,用包的技术组织程序的设计。同时要求程序能从键盘上接受数据以便求解不同的几何图形的周长面积。

程序如下:

这是在a包中的三角形类:

package a;

import java.util.Scanner;

public class sanjiaoxing {

float a;

float b;

float c;

public void shuru()

{

Scanner s = new Scanner(System.in); String str = s.next();

String[] arr = str.split("/");

a = Float.parseFloat(arr[0]);

b = Float.parseFloat(arr[1]);

c = Float.parseFloat(arr[2]);

}

public float getPerimter(){

return a+b+c;

}

public double getArea(){

float p=(a+b+c)/2;

return Math.sqrt(p*(p-a)*(p-b)*(p-c)); }

}

这是在b包中矩形的类:

package b;

import java.util.Scanner;

public class juxing {

float height;

float width;

public void shuru()

{

Scanner s = new Scanner(System.in); String str = s.next();

String[] arr = str.split("/"); height = Float.parseFloat(arr[0]); width = Float.parseFloat(arr[1]); }

public float getperimter(){

return 2*(width+height);

}

public float getarea(){

return width*height;

}

}

这是在c包中圆形的类:

package c;

import java.util.Scanner;

public class yuanxing {

float radius;

public void shuru()

{

Scanner s = new Scanner(System.in); String str = s.next();

String[] arr = str.split("/");

radius = Float.parseFloat(arr[0]);

}

public double getPerimter(){

double p;

p=2*3.14f*radius;

return p;

}

public double getArea(){

return 3.14f*radius*radius;

}

}

这是在Tuxing项目中实现程序的代码: import a.sanjiaoxing;

import b.juxing;

import c.yuanxing;

public class Tuxing {

public static void main(String[] args) { sanjiaoxing obj1=new sanjiaoxing(); juxing obj2=new juxing();

yuanxing obj3=new yuanxing();

System.out.println("请输入三角形三条边:");

obj1.shuru();

System.out.println("周长是:"+obj1.getPerimter()); System.out.println("面积是:"+obj1.getArea()); System.out.println("请输入矩形宽和长:");

obj2.shuru();

System.out.println("周长是:"+obj2.getperimter()); System.out.println("面积是:"+obj2.getarea()); System.out.println("请输入圆的半径:");

obj3.shuru();

System.out.println("周长是:"+obj3.getPerimter()); System.out.println("面积是:"+obj3.getArea());

}

}

结果如下:

出现的问题1:刚开始不知道怎么把各个不同的类放在不同的包中,所以弄了很久,还有一个问题是题目要求程序能从键盘上接受数据以便求解不同的几何图形的周长面积,所以刚开始老师给的程序段看不懂,所以就上网找了另一段代码,即public void shuru()

{

Scanner s = new Scanner(System.in);

String str = s.next();

String[] arr = str.split("/");

a = Float.parseFloat(arr[0]);

b = Float.parseFloat(arr[1]);

c = Float.parseFloat(arr[2]);

}

,(练习https://www.doczj.com/doc/a18688909.html,ng.Class类的使用,通过一个对象返回一个Class对象,如何获取一个类的名称,如何使用class生成一个类的对象。获取类的描述信息。程序如下:

public class abcd

{

public static void main(String arg[]) {

abcd t=new abcd();

Class tc=t.getClass();

String s=tc.getName();

System.out.println("name:"+s); }

}

结果如下:

, 出现的问题1:这个程序是在网上找到的代码,因为不是很明白

https://www.doczj.com/doc/a18688909.html,ng.Class类的使用,通过一个对象返回一个Class对象。

4(从命令行输入一个正整数,用递归的方法求出每位数字上的累加和程序如下:

import java.util.Scanner;

public class zhengshu{

int n;

public void shuru()

{

Scanner s = new Scanner(System.in);

String str = s.next();

String[] arr = str.split("/");

n = Integer.parseInt(arr[0]);

}

public int jisuan()

{

int s=0,b;

b=n%10;

while(b!=0)

{

b=n%10;

n=n/10;

s=s+b;

}

return s;

}

public static void main(String[] args){

zhengshu obj=new zhengshu();

System.out.println("请输入一个正整数:");

obj.shuru();

System.out.println("各位数相加和是:");

System.out.println(obj.jisuan());

}

}结果如下:

, 出现的问题1:这个程序主要是要明白当从命令行输入的正整数有不一样

的位数,所以就必须要使用循环语句来实现位数的相加。

三、思考题

1(定义一个矩形类Rectangle,再定义接口InterfaceRec,其中包含方法getArea ();

由矩形类派生出一个正方形类,自行扩充成员变量和方法,并实现此接口InterfaceRec中的方法。

答:程序如下:

interface MY{ //定义接口

float getarea();

}

class juxing{ //矩形类

private float height;

private float width;

public float getperimter(){

return 2*(width+height);

}

}

class zheng extends juxing implements MY{ //正方形类继承矩形类和实现接口

private float a1;

public float getarea(){

return a1*a1;

}

public float getperimter(){

return 2*(a1+a1);

}

zheng(float a){

a1=a;

}

public static void main(String args[]){

zheng obj=new zheng(3);

System.out.println("当正方形宽是:3");

System.out.println("周长是:"+obj.getperimter());

System.out.println("面积是:"+obj.getarea());

}

} 2. 内部类inner class和外部类的区别,

答:内部类是存在于某个外部类中,可以将内部类看成是外部类的成员。 3(抽象类和接口的区别,

答:含有抽象方法才是抽象类,抽象类作为父类被继承;而接口里的方法都是抽象方法,所有变量都是static变量,接口可以实现多重继承。

四、实验心得:通过这个实验四,我明白了如何使用接口、抽象、继承和包,

抽象和接口的使用基本差不多,但不一样的是抽象类作为父类被继承;而接口里的方法都是抽象方法,所有变量都是static变量,接口可以实现多重继承,即一个类可以实现多个接口。继承分为私有继承、保护继承和公有继承,子类可以继承父类里的所有数据成员和成员方法,所以就可以避免重复书写

父类中的数据成员和成员方法,子类中也可以覆盖父类中成员方法。使用包可以防止类命名的混乱,包可以将类组织成单元,控制包中类、接口、成员变量和方法的可见性,除了类中所有的成员变量和方法可以被同一包中的其他类和方法访问。

实验2:Java面向对象程序设计

实验2:Java面向对象程序设计(一) 实验目的 ●掌握类的定义;掌握构造方法的使用;掌握对象的创建。 ●掌握静态变量与静态方法的使用;了解静态变量和成员变量的区别。 ●熟悉访问修饰符的作用;掌握访问修饰符的使用方法。 ●掌握方法的重载;掌握访问器get/set方法。 实验步骤 一、类和对象的创建 1.创建一个圆类,成员变量有半径radius和圆周率pi,提供计算圆面积的方法,并在main方法中创建圆类的对象,调用其计算面积的方法进行测试。 2.编写上述代码,编译运行代码,查看程序执行结果。 ●试述程序中两个类的各自作用。 ●类Circle都封装了什么?求圆面积的初始数据是通过哪个方法实现的?请修改程序采用构造函数的方法初始化数据。 ●类Circle是如何声明的?在类中都声明了什么?在主函数中是如何创建Circle类对象的? 二、静态变量和静态方法的设计 (一).静态变量和实例变量练习 1.创建一个类,类名为StaticVariableTest,包含static变量和实例变量,类型为int型,在main方法中分别调用这2个变量并且输出结果。 2.部分源代码如下: 3.将上述代码中的main方法补充完整后,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析调用静态变量和实例变量有什么不同? (二).静态方法和实例方法练习 1.创建一个类,类名为StaticMethodTest,包含一个静态方法和一个实例方法,在main方法中分别调用这个两个方法进行测试。 2.部分源代码如下:

3.将上述代码中的main函数补充完整,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析如何调用静态方法和实例方法? 三、访问修饰符与方法的重载 (一).访问修饰符练习 1.创建一个Person类,在该类中用不同的访问修饰符设立不同的person属性,再创建一个PersonTest类,包括main方法,在此类中分别访问Person类中各个属性。 2.源代码如下: 3.先填写下面的表格,在预测结果中,如果能打印输出,填写程序输出结果,否则填“N”。 ●记录程序运行结果。 表4-3-1预测和验证结果 4.编写上述代码,编译运行代码。在上表中填写程序验证结果。 ●访问private变量时,编译会出现什么问题,为什么? ●通过什么方式能访问private变量?编程实现访问Person类中的private变量。

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

Java实验 类和对象

一、实验目的 掌握类和对象的定义,以及它们之间的关系 学习类中属性和方法的设计 会用UML图来对类进行描述 熟悉修饰符的作用,会用set/get方法对数据进行封装 二、实验要求 设计一个名为Rectangle的类表示矩形。这个类包括: ?两个名为width和height的私有double型数据域。用来表示宽、高。默认值为1.0。 ?创建默认矩形的无参构造方法。 ?一个创建width和height为指定值的矩形的构造方法。 ?一个名为GetArea()的公有方法返回矩形面积double ?一个静态的Compare方法,比较两个矩形的面积大小是否相等并返回一个布尔型结果,相等返回true,不等返回false; 画出UML 类图,实现Rectangle类,编写测试程序创建两个Rectangle类的对象。第一个对象的width为1,height为1;第一个对象的width为5,height为6。调用compare方法判断两个矩形是否相等并显示结果。 三、实验内容 1.使用Jude工具绘制UML图

2.编写代码实现类Rectangle package edu.neu.li.test; publicclass Rectangle { privatedouble width; privatedouble height; public Rectangle() { this.width = 1.0; this.height = 1.0; public Rectangle(double width, double height) { this.width = width; this.height = width; } publicdouble GetArea() { returnthis.width * this.height ; } publicstaticboolean Compare(Rectangle rec1, Rectangle rec2) { if(rec1.GetArea()==rec2.GetArea()) { returntrue; } returnfalse; } }

java面向对象编程实验报告

java面向对象编程实验报告 篇一:java面向对象编程实验报告 信息工程学院 Java程序设计实验/实习报告 学院:信息工程学院班级:信息112 姓名:吴连梅学号:XX013305 成绩:A 实验二面向对象编程 1.实验目的 (1)掌握类与对象基本知识; (2)Java中的继承机制及包(package)、接口(interface)等的设计方法; (3)掌握static、this、super等关键字的使用; (4)掌握Java中两种比较器的用法。 2.实验内容 实验题 1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice ()。 基本要求: (1)设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性;

(2)重写父类的toString()方法,实现Book类实例的两个属性的输出。 实验过程: 新建工程后,在工程下面建立一个包Book,在包下再建立一个Book类,类中包含两个属性,一个是private的String类型的属性title、一个是private的float类型的属性listPrice,之后是封装这两个属性的四个方法,用快捷键Alt+Shift+S选择gennerate Getters and Setters,再实验报告的内容与格式按任课教师的要求书写。 然后就是重写父类的toString()方法,用快捷键Alt+Shift+S选择gennerate toString,快捷重写。 这段程序写完是这样的: 接下来便是BookManagement类,在包book下新建一个类BookManagement, 写完的程序是这样的: BookManagement类中创建了书的对象,在主方法中调用output函数,赋值,输出。程序写完后,将其存盘,再进行运行,得出的结果如下: 实验题2 有两个类:MobileManagement和Mobile,分别描述如图 3.4所示两部手机名称及价格,类MobileManagemen(本文来自:小草范文网:java面向对象编程实验报告)t在包,而Mobile在包

Java类与对象实验报告

实验报告 一、实验项目:类与对象 二、实验目的: 1. 学会使用类来封装对象的属性和功能 2. 掌握类变量与实例变量,以及类方法与实例方法的区别 3. 掌握使用package和import语 三、实验器材:计算机、Java编程软件JCreator 四、实验原理(或仪器装置图): 1. 类与对象 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。 类声明 class 类名{ 类体 } 对象的声明 一般格式为: 类的名字对象名字; 定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。 变量名=new 类名([构造方法实参表]); 对象的使用 访问成员的基本语法形式如下:

对象名.变量成员名 对象名.方法成员名([实际参数表]) 2.成员变量和局部变量 成员变量格式:[修饰符] 变量类型变量名[=初值]; 成员方法: 格式:[修饰符] 返回值的数据类型方法名(参数1,参数2,…) { 语句序列; return[表达式]; } 类中定义的变量是成员变量,而方法中定义的变量是局部变量。 3. 构造方法 构造方法是一种特殊的方法,创建对象时被自动调用。与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。构造方法的方法名与类名相同在构造方法中可以通过this关键字调用该类中其他的构造方法。 4.包 包是Java语言中有效地管理类的一个机制。 ①通过关键字package声明包语句。package 语句作为Java源文件的第一条语句,指 明该源文件定义的类所在的包。package语句的一般格式为:package 包名; ②import 语句:使用import 语句可以引入包中的类。 五、实验步骤及数据记录: 1.定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积与体积。

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

西安财经学院信息学院 《Java 程序设计》 实验报告 实验名称 类与对象 实验室 实验楼521 实验日期 2012年4月10日 类与对象 一、实验目的 1、掌握类的定义和使用,编写构造方法及成员方法。 2、能够创建类的实例,掌握对象的声明和不同访问属性的成员访问方式。 3、会定义接口、实现接口。 二、实验内容 1. 在java 中,定义一个接口,声明计算图形面积和周长的抽象方法,再用类去实现这个接口,再编写一个测试类去使用这个接口。 2. 设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。 三、实验环境 以Windows 环境为平台,使用JDK 5.0 四、实验步骤 姓名 学号 班级 年级 指导教师

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

七、源程序 1、interface Shape{ //定义Shape接口 final double pi=3.14; //数据成员一定要初始化 public abstract double area(); public abstract double girth(); //抽象方法,不需要定义处理方式} class Circle implements Shape{ double radius; public Circle(double r){ //构造方法 radius=r; } public double area(){ return (pi * radius * radius); } public double girth(){ return (2 *pi * radius); } } public class InterfaceTester { public static void main(String args[]){ Circle cir=new Circle(3.0); System.out.println("Area of cir = " + cir.area());

JAVA实验报告_实验3_类与对象_

Java Object-Oriented Programming Experimental Report

System.out.println ("Your lucky numbers are " + lucky1 + ", " + lucky2 + ", and " + lucky3); } } 3.2 Working with Strings(Choose to do) 3.3 Rolling Dice 3.4 Computing Distance 3.5 formatting Output

3.6 Playing with Cards(Choose to do) 3.7 Experimenting with the Integer Class(Choose to do) 3.8 Nested Panels (1)宽度两倍 (4)添加主界面宽度高度设定 (5)添加MyPanels

4.Experimental results and data processing 5.Analysis and discussion Score: 6.Teacher Reviews Signature: Date: Experimental Report List 1Exercises 1) Source code list 3.3 package test_java_03; import java.util.Random; public class point3_3 {

public static void main(String[] args) { Random ger = new int lucky1, lucky2, lucky3; lucky1 = ger.nextInt(6)+1; lucky2 = (int)(ger.nextFloat()*6)+1; lucky3 = (int)(ger.nextFloat()*10)+20; System.out.print(lucky1+lucky2); } } 3.4 package test_java_03; import java.util.Scanner; public class point_3_4 { public static void main (String[] args) { double x1, y1, x2, y2; double distance; Scanner scan = new Scanner(System.in); System.out.print ("Enter the coordinates of the first point " + "(put a space between them): "); x1 = scan.nextDouble(); y1 = scan.nextDouble(); System.out.print ("Enter the coordinates of the second point: "); x2 = scan.nextDouble(); y2 = scan.nextDouble(); double y=Math.abs(y2-y1)*Math.abs(y2-y1),x=Math.abs(x2-x1)*Math.abs(x2-x1); double z=Math.sqrt(y+x); System.out.print("The distance between the two points is "+z); } } 3.5 package test_java_03; import java.util.*; import java.text.NumberFormat; import java.text.DecimalFormat; public class point_3_5 { public static void main (String[] args) { final double OUNCES_PER_POUND = 16.0; double pricePerPound; double weightOunces;

实验3 Java类与对象

实验三类与对象 一、实验目的 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());}

JAVA类与对象实验报告

《面向对象程序设计》实验报告 实验三、类与对象(1) 课程代码:1H10500学分:6 实验类型:实践型实验学时:4个学时 实验时间:2017.10.12 实验地点:5407 班级:计算机164 专业:计算机科学与技术专业学号:2016011147 姓名:林文辉 一、实验目的 (1)掌握类和对象 (2)理解封装 (3)会创建和使用对象 (4)会定义和使用类的方法 (5)理解变量作用域 二、实验内容及步骤 内容:定义学校类、教员类、学生类、游人类以及管理员类 步骤:方案的设计与分析(类结构图。。。。。。) 1、抽象出该类的共同属性特征 2、抽象出该类的共同方法行为 三、实验过程及结果 实验1代码: 学校类教员类学生类 class School{ String schoolName; int classNumber; int labNumber; public School() { schoolName="北京远航培训中心"; classNumber=10; labNumber=10; } class Teacher{ String teacherName; String teacherDirection; String teacherClass;

int teacheAge; public Teacher() { teacherName="王老师"; teacherDirection="计算机"; teacherClass="使用JAVA语言理解程序逻辑"; teacheAge=5; } class Student{ String studentName; String studentHobby; String studentClass; int studentAge; public Student() { studentName="张浩"; studentHobby="篮球"; studentClass="S1班"; studentAge=10; } 游人类: class Visitor { String name; int age; public void show(){ Scanner input = new Scanner(System.in); while(!"n".equals(name)){ if(age>=18 && age<=60){ //判断年龄 System.out.println(name+ "年龄为"+age+ ",价格为20元" ); }else{ System.out.println(name + "的年龄为:"+age+",免费"); } System.exit(0); } } } public class InitialVistor { public static void main(String[] args) { Scanner input = new Scanner(System.in); Visitor v = new Visitor(); System.out.print("请输入姓名:"); https://www.doczj.com/doc/a18688909.html, = input.next(); System.out.print("请输入年龄:");

3面向对象编程java实验报告(学生)

实验一基本数据类型与控制语句(预习) 院系:电子工程学院课程名称:面向对象编程(JAVA)日期:2014 年 4 月 2日 姓名刘志鹏班级A1221 实验名称基本数据类型与控制语句 学号30 专业通信工程成绩评定 预习内容: 一、java开发环境的安装与配置 1、jdk的下载 2、jkd的安装 3、系统环 2、屏幕截图软件的设置境变量的配置PATH和CLASSPATH的修改 4、java程序的编译与运行方法 二、源码编辑器的安装与使用 1、源码编辑器的安装 2、编辑器的使用 三、屏幕截图软件的安装、设置与使用 1、屏幕截图软件的安装 3、屏幕截图软件的使用 四、相关理论内容复习 1、JAVA语言中的数据类型、表达式、变量与常量。 2、JAVA语言中的赋值与强制类型转换、字符串连接、算术运算、关系运算、逻辑运算等。 3、JAVA语言中的强制类型转换。 4、JAVA流程控制:if语句、switch语句、for语句、while语句、do-while语句的格式及应用。 5、JAVA开发的API的查看与应用

实验一基本数据类型与控制语句 院系:电子工程学院课程名称:面向对象编程(JAVA)日期:2014 年 4 月 2日 姓名刘志鹏班级A1221 实验名称基本数据类型与控制语句 学号30 专业通信工程成绩评定 一、实验目的: 1、掌握JAVA开发环境的安装及环境变量的配置。 2、掌握Java Application程序的开发流程,包括源代码编写、字节码编译生成和字节码的解 释执行。 3、掌握JAVA语言中的数据类型、变量与常量。 4、掌握JAVA语言中的表达式,包括赋值与强制类型转换、字符串连接、算术运算、关系运算、逻辑运算等。 5、掌握JAVA流程控制语句,包括分支语句、循环语句和跳转语句。 6、掌握java中控制语句:if语句、switch语句、for语句、while语句、do-while语句的特点 及应用。 二、实验内容: 1、JDK的安装与java开发环境的配置。 2、使用源代码编辑器编写一个Java程序,利用JDK软件包中的工具编译并运行这个程序,在 屏幕上输出“Welcome to Java World!”。(最少包含一行注释,注释内容为个人的姓名,学号和 班级、专业等内容)。 3、编写一个字符界面的Java Application程序,接受用户输入的一个浮点数,把它的整数部 分和小数部分分别输出。 4、编写一个字符界面的Java Application程序,接受用户输入的10个整数,比较并输出其 中的最大值和最小值。 三、实验结果及代码: 1.

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、实验内容 1)设计一个Point类,该类包含两个int类型的成员变量:x、y, 一个Color类型的成员变量mycolor。请给出此类的构造方法,分别是一个不带参数的,一个带两个参数的,一个带三个参数 的构造方法。还要给出对应的get方法和set方法,最后重写 equals和toString方法。 2)Vector类的使用。要求:编写一个程序,创建Vector类的实例 vectorInstance;随机产生[0,100]之间的3个整数,依次插入到 vectorInstance中;将字符串“hello world”,插入到vectorInstance 的末尾。将字符‘A’,插入到vectorInstance的第一个位置; 在显示器上输出vectorInstance中的所有数据。 3)一个公司,拥有普通员工、行政人员和经理三类员工,全体员 工的工资都包括:基本工资、奖金,同时享受医疗保险和劳动 保险。行政人员和经理还享受车补;经理还有内部分红。请你 为该公司设计一个简单的工资管理程序。 九、程序清单 1>package imut.cstd.j09_2; import java.awt.Color; public class Point { private int x; private int y; private Color mycolor; public Point(){ x=0; y=0; mycolor=null; } public Point(int x,int y){

this.x=x; this.y=y; } public Point(int x,int y,Color mycolor){ this.x=x; this.y=y; this.mycolor=mycolor; } public int getX(){ return x; } public int getY(){ return y; } public Color getMycolor(){ return mycolor; } public void setX(int x){ this.x=x; } public void setY(int y){ this.y=y; } public void setMycolor(Color mycolor){ this.mycolor=mycolor; } public String toString(){ return"X="+x+"\n"+"Y="+y+"\n"+"Mycolor="+mycolor; } public boolean equals(Object p){ if(p==null)return false; if(!(p instanceof Point))return false; Point temp=(Point)p; if((mycolor==null)&&(temp.mycolor==null)&&(x==temp.x)&&(y==temp.y))return true; if(!(temp.mycolor==null)&&(mycolor.equals(temp.mycolor))&&(x==temp.x)&&(y==t emp.y))return true; else return false; } public static void main(String[] args){ Point p=new Point(); System.out.println(p);

实验5 类和对象1答案

实验5:Java类与对象 一、实验目的 (1)使用类来封装对象的属性和功能; (2)掌握Java类的定义。 (3)java对象的使用 二、实验任务 (1)按要求编写一个Java程序。 (2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。 三、实验内容 1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。 2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。 class Student{ long studentID; int classID; String name; String sex; int age; public Student(long studentID,int classID,String name,String sex,int age){ this.studentID=studentID; this.classID=classID; https://www.doczj.com/doc/a18688909.html,=name; this.sex=sex; this.age=age; } public long getStudentID(){ return studentID; } public int getClassID(){ return classID;

实验5类和对象1答案

实验5: Java类与对象 一、实验目的 (1)使用类来封装对象的属性和功能; (2)掌握Java类的定义。 (3)java对象的使用 二、实验任务 (1)按要求编写一个Java程序。 (2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。 三、实验内容 1. 编写一个Java程序片断,以定义一个表示学生的类Studen。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄” 0 2. 为类Student增加一个方法public String toString(),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。 class Stude nt{ long stude ntID; int classID; Stri ng n ame; Stri ng sex; int age; public Stude nt(l ong stude ntlD,i nt classlD,Stri ng n ame,Stri ng sex,i nt age){ this.stude ntID=stude ntID; this.classlD=classlD; this .n ame=n ame; this.sex=sex; this.age=age; } public long getStudentID(){ return stude ntID; } public in t getClasslD(){ return classID;

Java类及对象实验报告

西安邮电大学 (计算机学院) 课实验报告 实验名称:类与对象 专业名称:计算机科学与技术 班级:计科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.java class 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,sideC this.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,sideC

Java面向对象程序设计 实验报告

一、实验目的及内容 目的:掌握和巩固Java面向对象程序设计的概念、方法。 内容: 1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个 类的多个对象拥有各自的实例成员变量。 2.编写一个表示人的类Person,该类满足以下要求: ●有两个private成员变量:name(名字)、age(年龄);在Person类外访问这两个成员变量均 通过接口器函数(getXXX,setXXX)。 ●该类具有一个有两个参数的构造函数,这两个参数分别用来初始化name和age成员变量。 ●该类包含一个方法public boolean older(Person r),用于比较当前对象年纪是否比参数r的年纪 大,若是,则返回true,否则,返回false。 编写另外一个类:TestPerson,该类包含下面函数: public static void sortPerson(Person[] personList),在该函数中利用Person类的older方法实现对数组personList按年龄从小到大排序。main函数位于该类中。在main函数中 (1)创建Person类的10个对象,并保存到一个数组中,创建10个对象时,每个对象的年龄为0~100的一个随机数(用Math.random()函数得到)。 (2)输出这个数组中每个对象的名字、年龄。 (3)调用sortPerson方法,对这个数组中的10个Person对象按年龄排序。 (4)输出排序后数组中每个对象的名字、年龄。 二、要求 1.给出上述程序的中涉及到的类的类图(可用visio画)、解决上述问题的思路、代 码和测试结果。 1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。 设计思路:要实现一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。我创建了一个Number类,并创建了两个对象number1和number2,该类有一个类成员函数static int numberofsum(int a, int b)来求和,一个类成员变量countnumber来统计对象的个数,还有实例成员变量num,通过两个对象求和以及统计对象个数,说明了一个类的所有对象共享同一个类成员变量,两个对象都有自己的num值说明了一个类的多个对象拥有各自的实例成员变量。

相关主题
文本预览
相关文档 最新文档