java程序设计与j2ee中间件技术/软件开发技术(I)-实验二-类与对象

本文涉及的产品
性能测试 PTS,5000VUM额度
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: java程序设计与j2ee中间件技术/软件开发技术(I)-实验二-类与对象

题目1

1 题目说明

1、按要求编写Java应用程序。

(1)建立一个名叫Cat的类:

属性:姓名、毛色、年龄

行为:显示姓名、喊叫

(2)编写主类:

创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。

2 实验设计

2.1 工程结构

题目1工程结构:Cat类中有私有属性属性年龄、名字、毛色,有公有函数函数显示姓名和喊叫,有构造函数和getter/setter。Main类存放主程序,主程序输出毛色、年龄,并调用Cat类中的函数。

3 运行界面截图与说明

4 代码

Cat.java

public class Cat {
  private String name;
  private String color;
  private int age;
  public void showName() {
    System.out.println(name);
  }
  public void bark() {
    System.out.println("喵");
  }
  public Cat(String _name,String _color,int _age){
    name=_name;
    color=_color;
    age=_age;
  }
  public void setName(String _name) {
    name=_name;
  }
  public void setColor(String _color) {
    color=_color;
  }
  public void setAge(int _age) {
    age=_age;
  }
  public String getName() {
    return name;
  }
  public String getColor() {
    return color;
  }
  public int getAge() {
    return age;
  }
}

Main.java

public class Main {
  public static void main(String args[]) {
    Cat cat=new Cat("妮妮","灰色",2);
    System.out.println("毛色:"+cat.getColor());
    System.out.println("年龄:"+cat.getAge());
    cat.showName();
    cat.bark();
  }
}

题目2

1 题目说明

定义一个表示学生信息的类Student,要求如下:

(1)类Student的成员变量:

sName表示姓名;sJava:表示Java课程成绩。

(2)为类Student创建不带参数的构造函数

(3) 为类Student创建带参数的构造函数,在构造方法中通过形参完成对成员变量的赋值操作。

(4)为类Student的方法成员建立set和get方法。

在主类mainClass中,从键盘接收输入,创建含有五个学生对象的数组,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。

2 实验设计

3 运行界面截图与说明

涉及个人隐私信息,截图不予放出。

题目2运行结果:正确地创建了含有5个学生对象的数组,并正确地能根据提示信息输入了5个人的姓名和java成绩。之后,可以正确的计算并输出这5个学生的java语言成绩的平均值、最大值和最小值。

4 代码

Student.java

public class Student {
  private String sName;
  private int sJava;
  public Student() {
    sName="";
    sJava=0;
  }
  public Student(String _sName,int _sJava) {
    sName=_sName;
    sJava=_sJava;
  }
  public void setName(String _sName) {
    sName=_sName;
  }
  public void setJava(int _sJava) {
    sJava=_sJava;
  }
  public String getName() {
    return sName;
  }
  public int getJava() {
    return sJava;
  }
}

Main.java

import java.util.Scanner;
public class Main {
  public static void main(String args[]) {
    Student []students=new Student[5];
    for(int i=0;i<=4;i++) {
      students[i]=new Student();
    }
    Scanner scanner=new Scanner(System.in);
    for (Student student:students) {
      System.out.println("请输入姓名和java成绩:");
      String name=scanner.next();
      int sjava=scanner.nextInt();
      student.setName(name);
      student.setJava(sjava);
    }
    scanner.close();
    double sum=0;
    int max=0;
    int min=0x3f3f3f3f;
    for (Student student:students) {
      sum=sum+student.getJava();
      if (max<student.getJava())
        max=student.getJava();
      if (min>student.getJava())
        min=student.getJava();
    }
    double avg=sum/5.0;
    System.out.println("平均分:"+avg);
    System.out.println("最高分:"+max);
    System.out.println("最低分:"+min);
  }
}

题目3

1 题目说明

(1)编写一个圆类Circle,该类拥有:

①一个成员变量 radius(私有,浮点型); // 存放圆的半径;

②构造方法

Circle( ) // 将半径设为0

Circle(double r) //创建Circle对象时将半径初始化为r

③成员方法

double getArea( ) //获取圆的面积

double getPerimeter( ) //获取圆的周长

radius的set和get方法

(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:

①一个成员变量 height(私有,浮点型); // 圆柱体的高;

②构造方法

Cylinder (double r, double h) //创建Circle对象时将半径初始化为r

③成员方法

double getVolume( ) //获取圆柱体的体积

height的set和get方法

(3)编写主类,创建一个圆柱对象,分别从键盘输入设置底面圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积.

2 实验设计

Circle类有一个私有变量radius为double双精度浮点类型。有一个空构造函数、一个参数为圆半径的构造函数。有直接得到周长和面积的getArea()、getPerimeter()方法。还有对radius属性的getter/setter方法。

Cylinder类继承Circle类。有一个私有变量height为双精度浮点类型。有一个空构造函数和一个参数分别为半径和高度的构造函数。有直接得到体积的getVolume()方法。还有对height属性的getter/setter方法。

Main类有main函数。

3 运行界面截图与说明

题目3运行结果:正确地创建了一个继承自Circle类的Cylinder类。在将底面半径设置成5.5、高设置成3.5后,正确地计算并分别输出了圆半径、圆面积、圆周长,圆柱体的体积,并保留两位小数。

4 代码

Circle.java

public class Circle {
  private double radius;
  public Circle(double r) {
    this.radius=r;
  }
  public Circle() {
    this.radius=0;
  }
  public double getRadius() {
    return radius;
  }
  public void setRadius(double radius) {
    this.radius = radius;
  }
  public double getArea() {
    return radius*radius*Math.PI;
  }
  public double getPerimeter() {
    return 2*radius*Math.PI;
  }
}

Cylinder.java

public class Cylinder extends Circle {
  private double height;
  public Cylinder(double r,double h){
    super(r);
    this.height=h;
  }
  public Cylinder() {
    super();
    this.height=0;
  }
  public double getHeight() {
    return this.height;
  }
  public void setHeight(double h) {
    this.height=h;
  }
  public double getVolume() {
    return super.getArea()*height;
  }
}

Main.java

import java.util.Scanner;
public class Main {
  public static void main(String args[]) {
    Cylinder cylinder=new Cylinder();
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入圆柱体的底面半径和高");
    double r,h;
    String str=sc.next();
    r=Double.parseDouble(str);
    str=sc.next();
    h=Double.parseDouble(str);
    sc.close();
    cylinder.setRadius(r);
    cylinder.setHeight(h);
    System.out.printf("底面半径%.2f\n",cylinder.getRadius());
    System.out.printf("底面面积%.2f\n",cylinder.getArea());
    System.out.printf("底面周长%.2f\n",cylinder.getPerimeter());
    System.out.printf("圆柱体积%.2f\n",cylinder.getVolume());
  }
}


目录
打赏
0
12
13
30
54
分享
相关文章
|
12天前
|
重学Java基础篇—Java类加载顺序深度解析
本文全面解析Java类的生命周期与加载顺序,涵盖从加载到卸载的七个阶段,并深入探讨初始化阶段的执行规则。通过单类、继承体系的实例分析,明确静态与实例初始化的顺序。同时,列举六种触发初始化的场景及特殊场景处理(如接口初始化)。提供类加载完整流程图与记忆口诀,助于理解复杂初始化逻辑。此外,针对空指针异常等问题提出排查方案,并给出最佳实践建议,帮助开发者优化程序设计、定位BUG及理解框架机制。最后扩展讲解类加载器层次与双亲委派机制,为深入研究奠定基础。
34 0
重学Java基础篇—类的生命周期深度解析
本文全面解析了Java类的生命周期,涵盖加载、验证、准备、解析、初始化、使用及卸载七个关键阶段。通过分阶段执行机制详解(如加载阶段的触发条件与技术实现),结合方法调用机制、内存回收保护等使用阶段特性,以及卸载条件和特殊场景处理,帮助开发者深入理解JVM运作原理。同时,文章探讨了性能优化建议、典型异常处理及新一代JVM特性(如元空间与模块化系统)。总结中强调安全优先、延迟加载与动态扩展的设计思想,并提供开发建议与进阶方向,助力解决性能调优、内存泄漏排查及框架设计等问题。
32 5
|
12天前
|
重学Java基础篇—Java Object类常用方法深度解析
Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
21 1
java常见的集合类有哪些
Map接口和Collection接口是所有集合框架的父接口: 1. Collection接口的子接口包括:Set接口和List接口 2. Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及 Properties等 3. Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等 4. List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等
消息中间件的选择:RabbitMQ是一个明智的选择
消息中间件的选择:RabbitMQ是一个明智的选择
146 0
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
3629 0
Docker部署RabbitMQ消息中间件
【7月更文挑战第4天】Docker部署RabbitMQ消息中间件
325 3
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
201 1
【Docker项目实战】Docker部署RabbitMQ消息中间件
消息中间件RabbitMQ---SpringBoot整合RabbitMQ【三】
这篇文章是关于如何在SpringBoot应用中整合RabbitMQ的消息中间件。内容包括了在SpringBoot项目中添加RabbitMQ的依赖、配置文件设置、启动类注解,以及如何通过单元测试来创建交换器、队列、绑定,并发送和接收消息。文章还介绍了如何配置消息转换器以支持对象的序列化和反序列化,以及如何使用注解`@RabbitListener`来接收消息。
消息中间件RabbitMQ---SpringBoot整合RabbitMQ【三】
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
这篇文章提供了RabbitMQ的安装和基本使用教程,包括如何使用Docker拉取RabbitMQ镜像、创建容器、通过浏览器访问管理界面,以及如何创建交换机、队列、绑定和使用direct、fanout和topic三种类型的交换器进行消息发布和接收的测试。
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】