当前位置: 首页 > article >正文

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

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

实验内容是些老生常谈的东西,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.kler.cn/a/9337.html

相关文章:

  • 【JVM】关于JVM的内部原理你到底了解多少(八股文面经知识点)
  • JSON-RPC-CXX深度解析:C++中的远程调用利器
  • 猿创征文|Inscode桌面IDE:打造高效开发新体验
  • 实验一:自建Docker注册中心
  • qt QVideoWidget详解
  • 【计算机网络】Socket编程接口
  • 2023年,软件测试行业怎么样?
  • Spark 并行度
  • docker 安装redis
  • 文档流normal flow
  • Redis - 基础数据类型
  • 签约喜讯 | Smartbi携手金域医学共建统一数据运营平台
  • Dart语言操作符?和!的用法
  • 优思学院|《精益思想》读后感
  • Fork分支代码与主干保持同步
  • ( “树” 之 DFS) 104. 二叉树的最大深度 ——【Leetcode每日一题】
  • 详细介绍别人电脑访问到自己电脑运行的项目
  • linux及docker和postgres SQL常用的一些命令整理
  • 托福高频真词List12 // 附托福TPO阅读真题
  • 【C++】继承---上(继承的引入及使用详解、切片赋值和作用域)
  • Elasticsearch+head+Ik中文分词器的安装以及Go操作Elasticsearch
  • 如何选择适合的企业网站建站方案?
  • 【Linux】基础IO
  • 【微信小程序】-- 自定义组件 - 父子组件之间的通信(三十八)
  • Flutter 生命周期原理
  • Properties