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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
云原生网关 MSE Higress,422元/月
性能测试 PTS,5000VUM额度
简介: 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());
  }
}


目录
相关文章
|
26天前
|
安全 Java 编译器
Java对象一定分配在堆上吗?
本文探讨了Java对象的内存分配问题,重点介绍了JVM的逃逸分析技术及其优化策略。逃逸分析能判断对象是否会在作用域外被访问,从而决定对象是否需要分配到堆上。文章详细讲解了栈上分配、标量替换和同步消除三种优化策略,并通过示例代码说明了这些技术的应用场景。
Java对象一定分配在堆上吗?
|
19天前
|
JSON 前端开发 JavaScript
java-ajax技术详解!!!
本文介绍了Ajax技术及其工作原理,包括其核心XMLHttpRequest对象的属性和方法。Ajax通过异步通信技术,实现在不重新加载整个页面的情况下更新部分网页内容。文章还详细描述了使用原生JavaScript实现Ajax的基本步骤,以及利用jQuery简化Ajax操作的方法。最后,介绍了JSON作为轻量级数据交换格式在Ajax应用中的使用,包括Java中JSON与对象的相互转换。
33 1
|
27天前
|
SQL 监控 Java
技术前沿:Java连接池技术的最新发展与应用
本文探讨了Java连接池技术的最新发展与应用,包括高性能与低延迟、智能化管理和监控、扩展性与兼容性等方面。同时,结合最佳实践,介绍了如何选择合适的连接池库、合理配置参数、使用监控工具及优化数据库操作,为开发者提供了一份详尽的技术指南。
31 7
|
25天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
40 3
|
25天前
|
SQL 监控 Java
Java连接池技术的最新发展,包括高性能与低延迟、智能化管理与监控、扩展性与兼容性等方面
本文探讨了Java连接池技术的最新发展,包括高性能与低延迟、智能化管理与监控、扩展性与兼容性等方面。同时,结合最佳实践,介绍了如何选择合适的连接池库、合理配置参数、使用监控工具及优化数据库操作,以实现高效稳定的数据库访问。示例代码展示了如何使用HikariCP连接池。
14 2
|
27天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
27 4
|
25天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
23 1
|
25天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
37 1
|
27天前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
44 2
|
29天前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
27 0
下一篇
无影云桌面