《Java程序设计》上机实验报告 实验二 初步的面向对象的程序设计练习

时间:2024.3.20

信息科学与工程学院 《Java程序设计》 上机实验报告

专业班级               姓    名            学    号  

实验时间                 指导教师            成    绩            


第二篇:Java面向对象程序设计 实验报告


一、实验目的及内容

目的:掌握和巩固Java面向对象程序设计的概念、方法。

内容:

1.         设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。

2.         编写一个表示人的类Person,该类满足以下要求:

l  有两个private成员变量:name(名字)、age(年龄);在Person类外访问这两个成员变量均通过接口器函数(getXXX,setXXX)。

l  该类具有一个有两个参数的构造函数,这两个参数分别用来初始化name和age成员变量。

l  该类包含一个方法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值说明了一个类的多个对象拥有各自的实例成员变量。

类图:

程序代码:

//package number;

public class Number {

    public static void main(String[] args) {

        System.out.println("Create two numbers!");

        Number number1 = new Number(5);

        System.out.println("After create the first number,countnumber is "

                + number1.countnumbers);

        Number number2 = new Number(10);

        System.out.println("After create the second number,countnumber is "

                + number2.countnumbers);

        System.out.println("The two numbers is "

                + number1.num + " and " + number2.num);

        System.out.println("The sum of two numbers is "

                + numberofsum(number1.num, number2.num));

    }

    static int countnumbers = 0;

    int num;

    Number(int a) {

        num = a;

        countnumbers++;

    }

    static int numberofsum(int a, int b) {

        int sum = a + b;

        return sum;

    }

}

测试结果:

 

2.编写一个表示人的类Person,以及另外一个类:TestPerson。具体要求见实验内容。

设计思路:定义两个类Person和TestPerson,TestPerson类中有public static void sortPerson(Person[] personList)来对创建的十个对象进行年龄大小排序。

类图:

 

程序代码:

//package testperson;

import java.util.Scanner;

public class TestPerson {

    public static void main(String[] args) {

        final int number = 10;

        Scanner input = new Scanner(System.in);

        Person[] personArray = new Person[number];

        for (int i = 0; i < personArray.length; i++) {

            System.out.print("Please enter the name of person " + (i + 1) + ":");

            String personName = input.next();

            int personAge = (int) (Math.random() * 100);

            personArray[i] = new Person(personAge, personName);

            System.out.println("The " + (i + 1) + " person's name is "

+ personArray[i].getName()

                              + " and the age is " + personArray[i].getAge());

        }

        sortPerson(personArray);

    }

    public static void sortPerson(Person[] personList) {

        Person t;

        for (int i = 0; i < personList.length - 1; i++) {

            for (int j = i + 1; j < personList.length; j++) {

                if (personList[i].older(personList[j])) {

                    t = personList[i];

                    personList[i] = personList[j];

                    personList[j] = t;

                }

            }

        }

        System.out.println("The age from young to old order is:");

        for (int k = 0; k < personList.length; k++) {

         System.out.println((k + 1) + ",  name: " + personList[k].getName()

                + ", age: " + personList[k].getAge());

        }

    }

}

class Person {

    private int age;

    private String name;

    Person(int getAge, String getName) {

        age = getAge;

        name = getName;

    }

    public int getAge() {

        return age;

    }

    public String getName() {

        return name;

    }

    public void setAge(int setage) {

        age = setage;

    }

    public void setName(String setname) {

        name = setname;

    }

    public boolean older(Person r) {

        if (this.age > r.age) {

            return true;

        } else {

            return false;

        }

    }

}

测试结果:

 

更多相关推荐:
面向对象程序设计实验报告

面向对象程序设计之课程设计上海电力学院课题名称院系专业学号姓名时间地点指导教师课程设计报告面向对象程序设计20xx20xx学年第一学期模仿ATM机存取款管理系统设计电子与信息工程学院通信工程20xx年1月12日...

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

面向对象程序设计实验报告姓名学号班级专业学院实验三函数的应用一实验目的掌握函数的定义和调用方法练习重载函数使用练习函数模板的使用练习使用系统函数二实验步骤编写函数floatConvertfloatTempFer...

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

题目11问题描述建立一个二维坐标系的类TwoCoor用xy表示坐标值实现两坐标点的加减运算计算两坐标点间的距离并重载输入输出运算符使之能够直接输入输出坐标点的坐标值2实现代码includeltiostreamg...

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

综合实验报告面向对象程序设计专业名称班级姓名学号信息科学与工程学院二零一三年七月信息科学与工程学院面向对象程序设计综合实验报告目录第一题111题目概述112设计思路113设计说明与调试分析14编码实现15程序运...

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

课程实验报告课程名称面向对象程序设计实验名称面向过程的整型栈编程院系计算机科学与技术专业班级学号姓名指导教师年日面向对象程序设计实验报告一需求分析1题目要求整型栈是一种先进后出的存储结构对其进行的操作通常栈括判...

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

教案20xx20xx学年第一学期学院系室计算机科学系课程名称面向对象程序设计专业年级班级12计算机嵌入式系统网络和信息安全班主讲教师蒋琳琼梧州学院面向对象程序设计教案课时分配理论课39学时实验课12学时共51学...

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

北京理工大学珠海学院实验报告ZHUHAICAMPAUSOFBEIJINGINSTITUTEOFTECHNOLOGY班级13级计算机3班学号13020xx31037姓名郑永雄指导教师谭忠兵实验题目类和对象实验时间...

黑龙江大学面向对象程序设计Java实验讲义20xx

Java语言程序设计实验讲义黑龙江大学计算机科学技术学院20xx年3月前言Java语言程序设计实验在面向对象程序设计的基础上阐述Java语言的编程基础及其设计方法内容包括Java程序的输入输出表达式与运算符结构...

11级《面向对象程序设计课程设计》任务书

11级C语言程序设计课程设计任务书适应于11级软件工程20xx221805820xx22180912一课程设计的目的与要求1教学目的在面向对象程序设计课程理论与实验教学的基础上根据软件工程的方法与流程在相对集中...

《面向对象程序设计》实验指导书

面向对象程序设计实验指导书第一部分实验教学大纲课程名称面向对象程序设计实验一课程简介及基本要求面向对象的程序设计是一门实践性很强的课程每个学生必须完成一定数量的上机作业通过上机作业进一步加深对课程基本内容的理解...

Java面向对象程序设计语言课程设计指导书

山东建筑大学商学院电子商务专业Java面向对象程序设计语言课程设计实验指导书一对学生的基本要求1理论联系实际严肃认真实事求是的科学态度和勇于探索的创新精神2运用所学基础理论与专业知识分析和解决实际问题培养独立思...

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

课程实验报告课程名称面向对象程序设计实验名称面向对象的公交转乘系统院系计算机科学与技术专业班级学号姓名指导教师月日面向对象程序设计实验报告一需求分析1题目要求假定所有公交车辆从起点到终点都是双向非环路的且双向线...

面向对象程序设计实验报告(23篇)