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

Java面向对象程序设计》课程

实验一报告

学号:                   

姓名:                   

专业:                   

学校:                   


1.1 实验目标

?   查找、下载JDK系统文件,并正确完成JDK的安装;

?   正确安装并使用Eclipse软件;

?   完成利用IDE进行简单Java程序的编写、调试及运行;

?   完成利用CMD进行简单Java程序的编写、调试及运行;

?   实验Java运算符在程序中的使用;

?   实验Java数组程序的应用。

1.2 实验要求

?  请各位学习者记录实验调试中出现的问题、调试过程及解决方法;

?  请各位学习者记录实验成果,并将运行结果抓屏;

?  请各位学习者按教学大纲的要求完成实验报告

–   完成实验报告Word文件

–   请将程序设计思想和方法、最终程序清单(自行设计部分明确表示)、运行结果抓屏等

?  报告提交到课程【作业】中。

1.3 实验内容

1.3.1 实验题1:搭建Java开发环境

【题目要求】

步骤1:请进入“http://www.oracle.com/cn/index.html”Oracle公司网站,在下载模块中查找、下载JDK系统文件和DOCS文档(建议选择JDK7以后版本);

步骤2:完成JDK的安装,观察并记录安装后的资源管理器中结构;

步骤3:设置系统环境变量,CLASSPATH变量和Path变量(参考教材和视频课程);

步骤4:完成DOCS文档安装;

步骤5:安装Eclipse软件,运行并测试。

【实验过程记录】

1.Oracle公司网站JDK系统文件下载链接和页面(抓屏)

2.Oracle公司网站DOCS文档下载链接和页面(抓屏)

3.系统环境变量设置(记录并抓屏)

CLASSPATH = D:\Program Files\Java\jdk1.8.0_05\lib;.;

Path =D:\Program Files\Java\jdk1.8.0_05\bin;

4.Eclipse软件运行界面(抓屏)

【实验总结和收获】

环境基本搭好

1.3.2 实验题2:利用IDE进行Java程序开发

【题目要求】

IDE开发运行Java程序是Java学习中重要点,使用Eclipse来开发运行Java程序,实现一个简单的程序输出“My name is XXX,I love Java!”。

步骤1:打开Eclipse软件,右击鼠标新建项目;

步骤2:在新建对话框中输入项目名称,生成新项目;

步骤3:按照标准格式写入程序(类的名称可以自己设定,代码撰写要求注意格式和编码规范);

步骤4:程序输出语句“My name is XXX,I love Java!”中的XXX修改为学习者自己的姓名;

步骤5:右键运行项目,调试并记录控制台输出结果。

【实验过程记录】

1.运行中出现的问题与解决方案

无,顺利

2.调试完成的最终代码(其中重要部分可以涂红和加粗)

package com.bjou.example;

publicclass Myname {

    publicstaticvoid main(String[] args) {

        // TODO Auto-generated method stub

        System.out.println("My name is XXX,I love Java!");

    }

}

3.控制台输出结果(抓图)

【实验总结和收获】

基本流程会了。

1.3.3 实验题3:利用CMD开发运行Java程序

【题目要求】

在这里我们使用CMD实现一个简单的程序输出“Welcome to Java!”。

步骤1:打开电脑任意存储盘位置存放Java的源程序;

步骤2:编辑源文件,打开Windows附件中的“记事本”软件,键入应用程序后保存成扩展名为“.java”的文件(注意:Java的文件名与主类名称应该一致);

步骤3:命令行编译运行,在Windows附件中的选择“运行”命令,在运行窗口中键入“CMD”命令;

步骤4:编译源程序,利用javac.exe命令,记录编译后结果;

步骤5:运行字节码文件,利用java.exe命令,记录运行结果。

【实验过程记录】

1.运行中出现的问题与解决方案

2.调试完成的最终代码(其中重要部分可以涂红和加粗)

import java.util.*;

public class HelloJavaApp{

              public static void main(String args[]){

                     System.out.println("Hello World!");

              }

}

3.编译后结果(抓图)

4.运行后结果(抓图)

【实验总结和收获】

会在CMD下用JDK

1.2.4 实验题4:运行一个完整的程序

【题目要求】

运行下面MyDate类,并添加输出语句,以显示m的值。

public class MyDate {

    private int day = 1;

    private int month = 1;

    private int year = 2000;

    public MyDate(int d, int m, int y) {

        year = y;

        month = m;

        day = d;

    }    

    public void display() {

        System.out.println(year + " / " + month + " / " +day); 

    }

       public static void main(String[] args) {

        MyDate  m = new MyDate(1, 8, 2013);

    }   

}

【实验过程记录】

1.运行中出现的问题与解决方案


2.调试完成的最终代码(其中自主修改部分可以涂红和加粗)

package com.bjou.example;

publicclass MyDate {

    privateint day = 1;

    privateint month = 1;

    privateint year = 2000;

    public MyDate(int d, int m, int y) {

        year = y;

        month = m;

        day = d;

    }    

    publicvoid display() {

        System.out.println(year + " / " + month + " / " +day); 

    }

     publicstaticvoid main(String[] args) {

        MyDate  m = new MyDate(1, 8, 2013);

        m.display();

    }   

}

3.运行后结果(抓图)

【实验总结和收获】

1.2.5 实验题5:Java运算

【题目要求】

完成下面Java运算符程序的调试和运行。请记录运行结果,并对运行结果进行分析。

public class Ex1_5{

      public static void main(String args[]){

             int a=234;

             int b;

             boolean c;

             b=0;

             c=(a==234)||(b++==1);

             System.out.println("b="+b+"  c="+c);

             b=0;

             c=(a==234)|(b++==1);

             System.out.println("b="+b+"  c="+c);

             b=0;

             c=(a!=234)||(b++==1);

             System.out.println("b="+b+"  c="+c);

             b=0;

             c=(a!=234)|(b++==1);

             System.out.println("b="+b+"  c="+c);

      }

}

【实验过程记录】

1.运行中出现的问题与解决方案

2.运行后结果(抓图)

3. “|”运算符和“||”运算符运行结果的异同分析

前者两侧所有表达式都要算,后者从左到右算如果有TURE后面的就不算了

【实验总结和收获】

学会了分析两个或运算符的差别

1.2.6 实验题6:Java数组运算

【题目要求】

编写程序完成如下要求:将源数组s[]中第2至4数组元素,复制到目的数组d[]的第4个元素开始的位置。显示复制前后的源数组和目的数组内容。

源数组:           int s[] = { 1, 2, 3, 4, 5, 6 };

目的数组:              int d[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };

提示:利用java.lang.System类的arraycopy()方法进行数组元素复制。

【实验过程记录】

1.运行中出现的问题与解决方案

2.调试完成的最终代码(其中自主修改部分可以涂红和加粗)

publicclass Helloword {

    publicstaticvoid main(String[] args) {

        // TODO Auto-generated method stub

        int s[]={1,2,3,4,5,6};

        int d[]={10,9,8,7,6,5,4,3,2,1};

        System.arraycopy(s, 1, d, 3, 4);

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

            System.out.println(d[i]);

    }

}

3.运行后结果(抓图)

【实验总结和收获】

学会了System.arraycopy函数

 

第二篇: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;

        }

    }

}

测试结果:

 
相关推荐