Java实验课的学习笔记(二)类的简单使用

news2024/10/7 20:30:38

本文章就讲的是很基础的类的使用
重点大概就是类的构造函数以及一些很基础的东西。

实验内容是些老生常谈的东西,Complex类,在当初学C++面向对象的时候也是这个样子展开的。
内容如以下:

public class Complex {
    float real;
    float imag;
    public Complex(){
        real = 0;
        imag = 0;
    }

    public Complex(float real, float imag){
        this.real = real;
        this.imag = imag;
    }

    public Complex add(float real){
        this.real += real;
        return this;
    }

    public Complex add(Complex complex){
        this.real += complex.real;
        this.imag += complex.imag;
        return this;
    }

    public Complex sub(float real){
        this.real -= real;
        return this;
    }

    public Complex sub(Complex complex){
        this.real -= complex.real;
        this.imag -= complex.imag;
        return this;
    }

    public Complex mul(float real){
        this.real *= real;
        this.imag *= real;
        return this;
    }

    public Complex mul(Complex complex){

        float TheReal = this.real;
        float TheImag = this.imag;

        this.real = TheReal * complex.real - TheImag*complex.imag;
        this.imag = TheReal * complex.imag + TheImag*complex.real;

        return this;
    }

    public String toString(){
        String str="";
        if(this.imag == 0){
            str += this.real;
        }
        else if(this.imag > 0 ){
            if(this.real==0){
                str += this.imag + "i";
            }
            else str += this.real + "+" + this.imag + "i";
        }

        else{
            if(this.real==0){
                str += this.imag + "i";
            }
            else str += this.real + "" + this.imag + "i";
        }
        return str;
    }

}

这里也不得不说一丁点相关知识–重载 overload
如这里的:

	public Complex(){
	        real = 0;
	        imag = 0;
	    }

    public Complex(float real, float imag){
        this.real = real;
        this.imag = imag;
    }

	 public Complex add(float real){
        this.real += real;
        return this;
    }

    public Complex add(Complex complex){
        this.real += complex.real;
        this.imag += complex.imag;
        return this;
    }

这里的Complex()Complex(float real, float imag)构造函数也就用了一些重载的知识。
所谓重载,就是函数名不变但是函数内部的参数变化,我们调用函数时通过函数里面的参数决定我们要调用哪个函数。
同理的,Complex add(float real),Complex add(Complex complex)也是如此,当add()的括号里面是一个float值的时候调用Complex add(float real),括号里面是一个Complex对象的时候调用Complex add(Complex complex)
我当时认为这不是理所当然的吗?其实不是的,这里是用到了重载(overload)的知识。
总代码:
在这里插入图片描述

包com.Class.Work3里的Complex类:

package com.Class.Work3;

public class Complex {
    float real;
    float imag;
    public Complex(){
        real = 0;
        imag = 0;
    }

    public Complex(float real, float imag){
        this.real = real;
        this.imag = imag;
    }

    public Complex add(float real){
        this.real += real;
        return this;
    }

    public Complex add(Complex complex){
        this.real += complex.real;
        this.imag += complex.imag;
        return this;
    }

    public Complex sub(float real){
        this.real -= real;
        return this;
    }

    public Complex sub(Complex complex){
        this.real -= complex.real;
        this.imag -= complex.imag;
        return this;
    }

    public Complex mul(float real){
        this.real *= real;
        this.imag *= real;
        return this;
    }

    public Complex mul(Complex complex){

        float TheReal = this.real;
        float TheImag = this.imag;

        this.real = TheReal * complex.real - TheImag*complex.imag;
        this.imag = TheReal * complex.imag + TheImag*complex.real;

        return this;
    }

    public String toString(){
        String str="";
        if(this.imag == 0){
            str += this.real;
        }
        else if(this.imag > 0 ){
            if(this.real==0){
                str += this.imag + "i";
            }
            else str += this.real + "+" + this.imag + "i";
        }

        else{
            if(this.real==0){
                str += this.imag + "i";
            }
            else str += this.real + "" + this.imag + "i";
        }
        return str;
    }

}

调用Complex类的TestWork3类:

import com.Class.Work3.Complex;

public class TestWork3 {
    public static void main(String[] args) {
        Complex c = new Complex(1, 2);
//        c.add(5);
//        Complex w = new Complex(4,1);
//        c.sub(w);
//        Complex w2 = new Complex(1,2);
//        c.mul(w2);
//        c.mul(5);
        System.out.println(c);
    }
}

就这样了~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

APK瘦身

先看下APK打包流程:APK打包流程_贺兰猪的博客-CSDN博客 知道了APK打包流程后想要瘦身,其实无非就是把整个APK的一些文件进行一个瘦身。 看下apk的这个文件。包括class、资源,资源生成arsc(资源映射表),manifest清单,…

快排(非递归)及计数排序算法

都学了递归版的快速排序为何还要再学非递归实现?由于在递归过程中,如果数据量过大,那么实现时容易导致栈溢出,虽然代码没有问题,但是就是会崩,因此要将其改为非递归来实现 文章目录一、快速排序&#xff08…

如何使用Mac远程控制Windows电脑?

在你开始之前,设置您要远程处理的 Windows 计算机。 先安装 Microsoft Remote Desktop。 您可以在“应用程序”文件夹中检查它。 如果在个人计算机上安装,请转到 Apple App Store 并下载 Microsoft Remote Desktop。 如果在 TXST 计算机上安装&#xff0…

【C语言】递归解决经典题目(汉诺塔问题、青蛙跳台阶问题)

简单不先于复杂,而是在复杂之后。 目录 1. 汉诺塔问题 1.1 简介及思路 1.2 代码实现 2. 青蛙跳台阶问题 2.1 简介及思路 2.2 代码实现 1. 汉诺塔问题 1.1 简介及思路 汉诺塔问题是一种经典的递归问题,起源于印度传说中的塔 of Brahma。问题描…

手把手教你学习IEC104协议和编程实现 十 故障事件与复位进程

故障事件 目的 在IEC104普遍应用之前,据我了解多个协议,再综合自动化协议中,有这么一个概念叫“事故追忆”,意思是当变电站出现事故的时候,不但要记录事故的时间,还需记录事故前后模拟量的数据,从而能从一定程度上分析事故产生的原因,这个模拟量就是和今天讲解的故障…

silvaco 仿真BJT

本次实验为利用silvaco仿真BJT器件,分析不同p区厚度以及p区不同掺杂浓度研究其电流增益的变化。 一、器件要求 区域 掺杂方式 掺杂浓度或 峰值浓度(/cm3) 厚度(um) 宽度(um) N-漂移区 均匀…

微服务框架【笔记-Nacos注册中心】

接上篇,继续学习微服务框架中的Nacos注册中心。 Nacos注册中心 一、认识和安装Nacos 1.认识Nacos Nacos 是阿里巴巴的产品,现在是 SpringCloud 中的一个组件。相比 Eureka 功能更加丰富。 2.安装Nacos 下面给大家展示windows安装Nacos步骤:…

网络互联技术与实践教程(汪双硕、姚羽)——第四章 路由技术

第四章 路由技术 4.1 路由原理 路由是指通过相互连接的网络将数据从源地点转发到目标地点的过程。在路由过程中,数据通常会经过一个或多个中间节点,路由发生在网络层。路由包含两个主要的动作:确定最佳路径和通过网络传输信息,后…

刷题笔记【6】| 快速刷完67道剑指offer(Java版)

本文已收录于专栏🌻《刷题笔记》文章目录前言🎨 1、包含min函数的栈题目描述思路(双栈法)🎨 2、栈的压入弹出序列题目描述思路(辅助栈)🎨 3、从上往下打印二叉树题目描述思路&#x…

chapter-4-数据库语句

以下课程来源于MOOC学习—原课程请见:数据库原理与应用 考研复习 概述 SQL发展 注:关键词是哪些功能,尤其第一个create alter drop是定义功能 1.SQL功能强大,实现了数据定义、数据操纵、数据控制等功能 2.SQL语言简洁&#xff…

【Java版oj】day26跳台阶扩展问题、快到碗里来

目录 一、跳台阶扩展问题 (1)原题再现 (2)问题分析 (3)完整代码 二、快到碗里来 (1)原题再现 (2)问题分析 (3)完整代码 一、跳台…

tomcat配置虚拟路径映射磁盘文件列表图片回显和放大功能实现springboot项目的文件虚拟路径映射

tomcat映射磁盘图片1.以E盘为例,在E盘创建目录testReceive2.配置tomcat虚拟路径映射e盘本地文件3.代码层面创建上传文件(此处为图片)工具类3.1(校验图片格式、获取当前主机ip、上传图片至本机目的地,获取上传图片地址&…

javaWeb(HTTP、Tomcat、Servlet)

目录 HTTP Web 服务器 - Tomcat 简介 基本使用:下载、安装、卸载、启动、关闭、配置、部署项目 IDEA中创建 Maven Web项目​编辑 IDEA中使用 Tomcat Servlet 快速入门 Servlet 执行流程 Servlet 生命周期 Servlet 体系结构 Servlet urlPattern配置 XM…

【从零开始学Skynet】实战篇《球球大作战》(五):gateway代码设计(中)

1、编码和解码 我们来实现两个辅助方法str_unpack和str_pack,用于消息的解码和编码。 (1)str_unpack代码 local str_unpack function(msgstr)local msg {}while true dolocal arg, rest string.match( msgstr, "(.-),(.*)")if…

【web自动化测试】

文章目录web自动化测试第一章 web自动化入门1.什么是自动化?1.1 优点2.什么是自动化测试?2.1 自动化测试能解决什么问题?2.2 自动化相关知识2.2.1优点2.2.2 误区2.3 自动化测试分类3.什么是Web自动化测试?3.1 什么Web项目适合做自…

Flutter 了解 Element

一 Element 概念 这个玩意的概念。到底是什么 ? 官方解释是在树中特定位置的实例。 二 继承关系 element 有 ComponentElement 和 RenderObjectElement 之分 1 ComponentElement class StatelessElement extends ComponentElement class StatefulElement extend…

计及调度经济性的光热电站储热容量配置方法

目录 1 主要内容 目标函数 光热电站能量传递过程 2 部分程序 3 程序结果 4 程序链接 1 主要内容 该程序复现《计及调度经济性的光热电站储热容量配置方法》模型,综合考虑火电机组发电成本、光热发电并网消纳的环境效益和运行维护成本、系统旋转备用成本等调度…

rk3568点亮LCD(RGB)

rk3568 Android11/12 调试 RGB 屏 RGB一般是指RGB色彩模型(RGB color model),是工业界的一种颜色标准。RGB接口占用的资源较多,所以这个接口的LCD刷新率非常快,软件控制也比较简单。缺点是控制需要增加电路,软件初始化需要增加程…

【BOM浏览器对象模型】

BOM浏览器对象模型1 本节目标2 BOM概述3 window对象的常见事件3.1 窗口加载事件3.2 调整窗口大小事件4 定时器4.1 两种定时器4.2 setTimeout()定时器4.3 停止setTimeout()定时器4.4 setInterval()定时器4.5 停止setInterval()定时器4.6 this指向问题5 JS执行队列5.1 JS是单线程…

BUUCTF-.htaccess-sql.fuzz-D盾

第七周第一次 目录 WEB [MRCTF2020]你传你🐎呢 ​编辑 [极客大挑战 2019]HardSQL Crypto 萌萌哒的八戒 传统知识古典密码 Misc 假如给我三天光明 后门查杀 WEB [MRCTF2020]你传你🐎呢 文件上传 我们进行尝试 设置一个 1.jpg的一句话木马 G…