《Java程序设计》实验报告(二)之面向对象编程基础

实验内容及步骤:

  1. 编写不带构造函数的类并测试。(学生类、圆类)

(1)代码:

class Student {

    String name="张三";

    int age=20;

    String sex="男";//gender

    String getName(){

        return name;

    }

    void setName(String newName)

    {

        name=newName;

    }

    void read()

    {

        System.out.println("我是"+name+"年龄:"+age+",我正在学习!");

    }

    void c(Student student)

    {

        student.name="王琳";

        student.age=200;

        student.sex="male";

    }

    public static void main(String[] args)

    {

        Student student=null;

        student=new Student();

        System.out.println(student);

        student.read();

        Student student1=new Student();

实验内容及步骤:     

        System.out.println(student1);

        student1.read();

        Student student2=student;

        System.out.println(student2);

    }

}

Test:

public class Test

{

    public static void main(String[] args)

    {

        Student student=new Student();

        Student s=new Student();

        student.name="李四";

        student.setName("李四");

        student.age=22;

        student.sex="女";

        System.out.println(student.getName());

        student.read();

        student.c(student);

        student.read();

        s.name="张三";

        s.age=100;

        s.sex="female";

        student=s;

        student.read();

        s.read();

    }

}

(2)运行结果:

  1. 编写带构造函数的类。(学生类、圆类)

(1)代码:

实验内容及步骤:

public class Circle

{

    private double radius;

    // 构造函数

    public Circle(double radius)

    {

        this.radius = radius;

    }

    public double getRadius()

    {

        return radius;

    }

    public double getDiameter()

    {

        return 2 * radius;

    }

    public double getCircumference()

    {

        return 2 * Math.PI * radius;

    }

    public double getArea()

    {

        return Math.PI * radius * radius;

    }

}

Test:

public class Test {

    public static void main(String[] args) {

        Circle circle = new Circle(5.0);

        System.out.println("圆的半径:" + circle.getRadius());

        System.out.println("圆的直径:" + circle.getDiameter());

        System.out.println("圆的周长:" + circle.getCircumference());

        System.out.println("圆的面积:" + circle.getArea());

    }

}

(2)运行结果:

实验内容及步骤:

  1. 编写有静态方法的类。(求最大值、求和)

(1)代码:

public class MathUtils

{

    public static int findMax(int[] numbers)

    {

        if (numbers == null || numbers.length == 0)

        {

            throw new IllegalArgumentException("数组不能为空");

        }

        int max = numbers[0];

        for (int i = 1; i < numbers.length; i++)

        {

            if (numbers[i] > max)

            {

                max = numbers[i];

            }

        }

        return max;

    }

    public static int sum(int[] numbers)

    {

        if (numbers == null || numbers.length == 0)

        {

            throw new IllegalArgumentException("数组不能为空");

        }

        int sum = 0;

        for (int number : numbers)

        {

            sum += number;

实验内容及步骤:

}

        return sum;

    }

}

Test:

public class Test {

    public static void main(String[] args) {

        int[] numbers = {2, 5, 1, 8, 4};

        int maxValue = MathUtils.findMax(numbers);

        System.out.println("最大值:" + maxValue);

        int sumValue = MathUtils.sum(numbers);

        System.out.println("求和结果:" + sumValue);

    }

}

  1. 运行结果:

4、编写对包操作的程序。(学生类及测试类分别放到两个包里)

(1)代码:

public class Student
{
    private String name;
    private int age;
    public Student(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public int getAge()
    {

实验内容及步骤:

return age;

}
    public void setAge(int age)
    {
        this.age = age;
    }
}

Test:

public class Test {
    public static void main(String[] args) {
        Student person1 = new Student("张三", 20);
        System.out.println("姓名:" + person1.getName());
        System.out.println("年龄:" + person1.getAge());
        Student person2 = new Student("李四", 25);
        System.out.println("姓名:" + person2.getName());
        System.out.println("年龄:" + person2.getAge());
    }
}

(2)运行结果:

你的问题:

  1. 静态成员访问非静态成员的限制:在静态方法中只能访问静态成员,无法直接访问非静态成员。
  2. 编写带构造函数的类时,遇到构造函数调用错误、对象实例化错误问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/376027.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Deepin基本环境查看(八)【系统安全:房、车、查房、查车】

Deepin基本环境查看&#xff08;八&#xff09;【系统安全&#xff1a;房、车、查房、查车】 - 相关文章目录1、概述2、想象中的... 现实中的...1&#xff09;想象中的我2&#xff09;梦幻中的我3&#xff09;现实中的我 3 要房、要车、还是房车都要1&#xff09;超级计算机2&a…

做跨境电商为什么需要使用住宅代理IP?

住宅代理IP是近年来跨境电商领域日益受到重视的技术工具&#xff0c;不仅可以保护隐私、优化网络速度&#xff0c;还能助推跨境电商的精细化管理。接下来&#xff0c;我们将深入探讨利用住宅代理IP如何为跨境电商业务带来竞争优势。 一、住宅代理IP与跨境电商 住宅代理IP&…

Android开发--实时监测系统+部署故障诊断算法

0.项目整体思路介绍&#xff1a; 搭建无人装备模拟实验平台&#xff0c;使用采集器对数据进行采集&#xff0c;通过网络通信Udp协议发送到安卓端&#xff0c;安卓端作界面显示&#xff0c;算法使用matlab仿真后&#xff0c;用C语言实现。将采集器采集到的数据经过处理后训练&a…

解决计算机“缺失ffmpeg.dll”报错?修复ffmpeg.dll文件方案

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“ffmpeg.dll丢失”。ffmpeg.dll是FFmpeg多媒体框架中的一个重要组件&#xff0c;它负责处理音频和视频的编解码。当打开某些软件时&#xff0c;如果系统找不到该文件&#xff0c;就会出现这…

【Linux取经路】探寻shell的实现原理

文章目录 一、打印命令行提示符二、读取键盘输入的指令三、指令切割四、普通命令的执行五、内建指令执行5.1 cd指令5.2 export指令5.3 echo指令 六、结语 一、打印命令行提示符 const char* getusername() // 获取用户名 {return getenv("USER"); }const char* geth…

Multisim14.0仿真(五十五)汽车转向灯设计

一、功能描述&#xff1a; 左转向&#xff1a;左侧指示灯循环依次闪亮&#xff1b; 右转向&#xff1a;右侧指示灯循环依次闪亮&#xff1b; 刹车&#xff1a; 所有灯常亮&#xff1b; 正常&#xff1a; 所有灯熄灭。 二、主要芯片&#xff1a; 74LS161D 74LS04D 74…

运维必会篇-日志(错误日志,二进制日志,查询日志,慢查询日志)

日志 错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过 程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时&#xff0c;建议首先查看此日 志。 该日志是默认开启的&#x…

LINUX基础培训二十四之shell字符串处理

一、shell字符串 字符串&#xff08;String&#xff09;就是一系列字符的组合。字符串是 Shell 编程中最常用的数据类型之一&#xff08;除了数字和字符串&#xff0c;也没有其他类型了&#xff09;。字符串可以由单引号 包围&#xff0c;也可以由双引号" "包围&…

laravel distinct查询问题,laravel子查询写法

直接调用后&#xff0c;count查询会和实际查询的数据对不上&#xff0c;count还是查询全部数据&#xff0c;而实际的列表是去重的。 给distinct加上参数&#xff0c;比如去重的值的id&#xff0c;就加id。 另一种写法是使用group by id 子查询。 sql语句&#xff1a; selec…

echarts使用之折线图(二)

1.基本使用 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible" cont…

CSS综合案例4

CSS综合案例4 1. 综合案例 我们来做一个静态的轮播图。 2. 分析思路 首先需要加载一张背景图进去需要4个小圆点&#xff0c;设置样式&#xff0c;并用定位和平移调整位置添加两个箭头&#xff0c;也是需要用定位和位移进行调整位置 3. 代码演示 html文件 <!DOCTYPE htm…

服务器被黑,安装Linux RootKit木马

前言 疫情还没有结束&#xff0c;放假只能猫家里继续分析和研究最新的攻击技术和样本了&#xff0c;正好前段时间群里有人说服务器被黑&#xff0c;然后扔了个样本在群里&#xff0c;今天咱就拿这个样本开刀&#xff0c;给大家研究一下这个样本究竟是个啥&#xff0c;顺便也给…

mmdetection使用自己的voc数据集训练模型实战

一.自己数据集整理 将labelimg格式数据集进行整理 1.1. 更换图片后缀为jpg import os import shutilroot_path/media/ai-developer/imgfileos.listdir(root_path)for img in file:if img.endswith(jpeg) or img.endswith(JPG) or img.endswith(png):img_pathos.path.join(root…

python实现飞书群机器人消息通知(消息卡片)

python实现飞书群机器人消息通知 直接上代码 """ 飞书群机器人发送通知 """ import time import urllib3 import datetimeurllib3.disable_warnings()class FlybookRobotAlert():def __init__(self):self.webhook webhook_urlself.headers {…

vue electron应用调exe程序

描述 用Python写了一个本地服务编译成exe程序&#xff0c;在electron程序启动后&#xff0c;自动执行exe程序 实现 1. 使用node的child_process模块可以执行windows执行&#xff0c;通过指令调exe程序 // electron/index.js var cp require("child_process"); /…

1080p 显示屏分辨率玩游戏的大有人在

喜欢玩游戏的其实大可不必为不能把自己的主机升级到4060焦虑&#xff0c;也不必望着最新的显卡天梯图眼馋兴叹。根据 Steam 平台的调查&#xff0c;六成 Steam 玩家仍然还在用 1080p 显示屏分辨率玩游戏。 根据Steam硬件调查4月份的榜单&#xff0c;1920x1080分辨率依然占据了6…

利用LLM大模型生成sql的深入应用探究

Chat2DB 是一款有开源免费的多数据库客户端工具,和传统的数据库客户端软件Navicat、DBeaver 相比 Chat2DB 集成了 AIGC 的能力&#xff0c;能够将自然语言转换为 SQL&#xff0c;也可以将 SQL 转换为自然语言&#xff0c;可以给出研发人员 SQL 的优化建议&#xff0c;极大地提升…

【C语言】GtkStack及标签页的关闭

一、GtkStack GtkStack 是 GTK&#xff08;GIMP Toolkit&#xff09;库中的一个容器类&#xff0c;用于管理多个子窗口部件&#xff08;widgets&#xff09;&#xff0c;但在任何给定时间内只显示其中一个。GtkStack 提供了一种在同一个空间位置显示不同内容的方式&#xff0c…

I.MX6u嵌入式linux驱动开发

1&#xff1a;Ubuntu 系统入门 当 Ubuntu 系统入门以后&#xff0c;我们重点要学的就是如何在 Linux 下进行 C 语言开发&#xff0c;如何使 用 gcc 编译器、如何编写 Makefile 文件等等 首先安装虚拟机软件VM&#xff1a; Vmware Workstation 软件可以在 Wmeare …

Vue3.0

一、Vue3.0介绍 1、Vue3.0介绍 在学习Vue3.0之前&#xff0c;先来看一下与Vue2.x的区别 会从如下几点来介绍 源码组织方式的变化Composition API性能提升Vite Vue3.0全部使用TypeScript进行重写&#xff0c;但是90%的API还是兼容2.x,这里增加了Composition API也就是组合A…