欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 面向对象中的小测试

程序员文章站 2022-03-04 20:09:04
...

编写环境为IDEA
如下图所示
Java 面向对象中的小测试

请按照题目的要求编写程序并给出运行结果。 
1、 设计一个学生类 Student 和它的一个子类 Undergraduate,要求如下:

 1)Student 类有 name(姓名)、和 age(年龄)属性,一个包含两个参数的构造方法,用于给 name 和 age 属性赋值,
 一个 show()方法打印 Student 的属性信息

 2) 本科生类 Undergraduate 增加一个 degree(学位)属性。
 有一个包含三个参数的构造方法,前两个 参数用于给继承的 name 和 age 属性赋值,
 第三个参数给 degree 专业赋值,一个 show()方法用 于打印 Undergraduate 的属性信息

 3) 在测试类中分别创建 Student 对象和 Undergraduate 对象,调用它们的 show()。 
package SanHomeworkTest;
//创建一个学生类
class Student{
   public String name; //定义变量name
   public int age; //定义变量age
   //创建一个包含两个参数的构造方法
   //这里注意构造方法名一定要和类名相同,并且没有返回值类型的声明,也不能使用return语句返回一个值
    public  Student(String name,int age){
            this.name = name;//使用this关键字访问类中的成员变量
            this.age = age;//使用this关键字访问类中的成员变量
    }
    //定义一个show方法,用来打印Student的属性信息
   public void show(){

        System.out.println("姓名:"+name+","+"年龄:"+age);//打印name,age的属性信息
    }
}

//定义一个Undergraduate 子类 去继承Student类
class Undergraduate extends Student{
   //定义degree属性
   public String degree;
   //定义一个含有三个参数的有参构造方法,
    public Undergraduate(String name,int age,String degree){
        super(name,age);//使用super关键字获取父类中的name和age属性
        this.degree = degree;//使用this关键字去访问类中的成员变量
    }
    //定义一个show方法,用于打印属性信息
    public void show(){
        System.out.println("姓名:"+name+","+"年龄:"+age+","+"学位:"+degree);
    }
}

//定义一个测试类PractiseOne
public class PractiseOne {
    public static void main(String[] args) {
        Student stu1 = new Student("张三",20);  //创建一个Student对象,并传入属性值
        Undergraduate under1 = new Undergraduate("李四",22,"学士学位"); //创建一个Undergraduate对象,并传入属性值
        stu1.show();//调用Student类中的show方法
        under1.show();//调用Undergraduate类中的show方法
    }
}

2、设计一个 Shape 接口和它的两个实现类 Square 和 Circle,要求如下:

 1)Shape 接口中有一个抽象方法 area(),方法接收有一个 double 类型的参数,返回一个 double 类 型的结果

 2)Square 和 Circle 中实现了 Shape 接口的 area()抽象方法,
 分别求正方形和圆形的面积并返回 在测试类中创建 Square 和 Circle 对象,
 计算边长为 2 的正方形面积和半径为 3 的圆形面积
package SanHomeworkTest;
//创建一个Shape接口
interface Shape{
    double area(double x); //定义一个抽象方法,接收一个double类型的参数
}

//定义一个Square类去实现Shape接口
class Square implements Shape{
//定义一个area方法,并接收一个double类型的参数,返回参数之积
    public double area(double sideLength){
            return sideLength * sideLength;
    }
}
//定义一个Circle类,去实现Shape接口
class Circle implements Shape{
//定义一个area方法,并接收一个double类型的参数,返回参数之积
    public double area(double r){
        return Math.PI * r * r ; //调用math中的PI
    }
}

//定义一个测试类PractiseTwo
public class PractiseTwo {
    public static void main(String[] args) {
        Square square = new Square(); //创建一个Square对象
        Circle circle = new Circle();//创建一个Circle对象
        double s =square.area(2); //调用Square中的area方法,并传入一个参数并将结果赋值给double类型的变量s
        double yuan = circle.area(3);//调用Circle中的area方法,并传入一个参数并将结果赋值给double类型的变量yuan
        System.out.println(s);
        System.out.println(yuan);
    }
}

3、自定义一个异常类 NoThisSoundException 和 Player 类,在 Player 的 play()方法中使用自定义异常, 要求入下: 

1)NoThisSongException 继承 Exception 类,
类中有一个无参和一个接收一个 String 类型参数的 构造方法,
构造方法中都使用 super 关键字调用父类的构造方法。

 2)Player 类中定义一个 play(int index)方法,方法接收一个 int 类型的参数,表示播放歌曲的索 引,
 当 index>10 时,paly()方法用 throw 关键字抛出 NoThisSongException 异常,
 创建异常对 象时,调用有参的构造方法,传入“您播放的歌曲不存在” 。

 3) 在测试类中创建 Player 对象,并调用 play()方法测试自定义的 NoThisSongException 异常,
 使 用 try…catch 语句捕获异常, 调用 NoThisSongException 的 getMessage()方法打印出异常信息。

package SanHomeworkTest;
//自定义一个异常类NoThisSoundException 并且继承Exception 类
class NoThisSoundException extends Exception{
    public NoThisSoundException(){     //定义一个无参构造方法NoThisSoundException
        super();//使用super关键字调用父类中的方法
    }
    //定义一个有参构造方法NoThisSoundException,接收一个String 类型的参数
    public NoThisSoundException(String message){
        super(message);//使用super关键字调用父类中的方法
    }
}

//定义一个Player类
class Player {
//定义一个play方法,并且接收一个int类型的参数,play方法中使用throw关键字抛出NoThisSoundException异常
    public void play(int index) throws NoThisSoundException{
            if (index > 10){
            throw new NoThisSoundException("您播放的歌曲不存在");//创建异常对象,调用有参构造方法,传入您播放的歌曲不存在
            }
            System.out.println("正在播放歌曲");//没有异常的话就程序正常运行
    }
}
//定义一个测试类
public class PractiseThree {
    public static void main(String[] args) {
        Player player = new Player(); //创建一个Player对象
        try {
            player.play(9); //调用Play中的play方法
        }
        catch (Exception e){
           System.out.println("异常信息为:"+ e.getMessage());//抛出异常信息
        }
    }
}

1、请按照以下要求设计一个学生类 Student,并进行测试。 要求如下:

 1)Student 类中包含姓名、成绩两个属性 
 
2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.

 
 3)Student 类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和 成绩属性赋值 

4)在测试类中创建两个 Student 对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值, 
一个使用有参的构造方法,在构造方法中给姓名和成绩赋值 

package ObjectOriented.ThreeUnit;

 class OneTestStudent1 {
    private String name;
    private double grade;
    public OneTestStudent1(){

    }
    public OneTestStudent1(String name,double grade){
        this.name = name;
        this.grade = grade;

    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public double getGrade(){
        return grade;
    }
    public void setGrade(double grade){
        this.grade=grade;
    }
}
public class OneTestStudent{
    public static void main(String[] args) {
        OneTestStudent1 stu1 = new OneTestStudent1();
        stu1.setName("zhangsan");
        stu1.setGrade(100);
        OneTestStudent1 stu2 = new OneTestStudent1("lisi",99);
        System.out.println("姓名"+stu1.getName()+"分数"+stu1.getGrade());
        System.out.println("姓名"+stu2.getName()+"分数"+stu2.getGrade());

          
    }
}


2、定义一个 Father 和 Child 类,并进行测试。 要求如下:

 1)Father 类为外部类,类中定义一个私有的 String 类型的属性 name,name 的值为“zhangjun”。
 
  2)Child 类为 Father 类的内部类,其中定义一个 introFather()方法,方法中调用 Father 类的 name 属性。
  
   3)定义一个测试类 Test,在 Test 类的 main()方法中,创建 Child 对象,并调用 introFather()方法。

package ObjectOriented.ThreeUnit;
class Father{
    private String name="www";
    class Child{
        public void introFather(){
            System.out.println("My Father's name is "+name);
        }
    }
}

public class TwoTest {
    public static void main(String[] args) {
        Father.Child stu = new Father().new Child();
        stu.introFather();
    }
}

请按照题目的要求编写程序并给出运行结果。 
1、请编写程序,实现计算“1+3+5+7+…+99”的值。 提示:

 1) 使用循环语句实现自然数 1~99 的遍历。

 2) 在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果是就累加,否则不加。 
package SanHomeworkTest;

public class Test01 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i < 100; i++) {
            if (i % 2 != 0)
                sum += i;
        }
        System.out.println(sum);
    }
}
2、已知函数

 x+3 (x>0)
 y= 0(x= 0) 
 x2 –1 (x<0) 

请设计一个方法实现上面的函数,根据传入的值 x 的不同,返回对应的 y 值。 提示:

 1) 定义一个 static 修饰符修饰的方法,方法接收一个 int 类型的参数 x,返回值为 int 类型。

 2) 在方法中使用 if…elseif..else 语句针对 x 的值进行三种情况的判断。

 3) 根据判断结果分别执行不同的表达式,并将结果赋予变量 y。

 4) 在方法的最后返回 y 的值。

 5) 在 main 方法中调用设计好的方法,传入一个 int 型的值,将方法的返回值打印。 
package SanHomeworkTest;

public class four1{
    public static void main(String args[]) {
        int y = function(0);
        System.out.println(y);
    }
    public static int function(int x) {
        int y;
        if (x > 0) {
            y = x + 3;
        } else if (x == 0) {
            y = 0;
        } else {
            y = x * x - 1;
        }
        return y;
    }
}

请编写程序,实现对数组{25,24,12,76,101,96,28} 的排序。 提示:使用冒泡排序算法。

package SanHomeworkTest;

public class four2TwoUnit {
    public static void main(String[] args) {
        int[] arr = { 25, 24, 12, 76, 101, 96, 28 };
        for (int i = 0; i < arr.length - 1; i++) {
// 定义内层循环
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) { 
                    // 比较相邻元素
// 下面的三行代码用于交换两个元素
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " "); // 打印元素和空格
        }
    }

}


相关标签: java