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

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


目录
相关文章
|
7天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
34 17
|
2天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
26 4
|
3天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
11 2
|
8天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
12天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
91 38
|
9天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
4天前
|
存储 设计模式 分布式计算
Java中的多线程编程:并发与并行的深度解析####
在当今软件开发领域,多线程编程已成为提升应用性能、响应速度及资源利用率的关键手段之一。本文将深入探讨Java平台上的多线程机制,从基础概念到高级应用,全面解析并发与并行编程的核心理念、实现方式及其在实际项目中的应用策略。不同于常规摘要的简洁概述,本文旨在通过详尽的技术剖析,为读者构建一个系统化的多线程知识框架,辅以生动实例,让抽象概念具体化,复杂问题简单化。 ####
|
5天前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
23 4
|
5天前
|
消息中间件 供应链 Java
掌握Java多线程编程的艺术
【10月更文挑战第29天】 在当今软件开发领域,多线程编程已成为提升应用性能和响应速度的关键手段之一。本文旨在深入探讨Java多线程编程的核心技术、常见问题以及最佳实践,通过实际案例分析,帮助读者理解并掌握如何在Java应用中高效地使用多线程。不同于常规的技术总结,本文将结合作者多年的实践经验,以故事化的方式讲述多线程编程的魅力与挑战,旨在为读者提供一种全新的学习视角。
25 3
|
11天前
|
安全 Java
在 Java 中使用实现 Runnable 接口的方式创建线程
【10月更文挑战第22天】通过以上内容的介绍,相信你已经对在 Java 中如何使用实现 Runnable 接口的方式创建线程有了更深入的了解。在实际应用中,需要根据具体的需求和场景,合理选择线程创建方式,并注意线程安全、同步、通信等相关问题,以确保程序的正确性和稳定性。