类和对象---复数,点坐标

实验要求:

一、实验目的:
掌握Java类的结构、类的定义、方法和属性的定义以及对象的实现;
掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传递和返回值的用法;
掌握类变量与实例变量,以及类方法与实例方法的区别。
三、    实验内容:
1.    定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标     show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。
2.    定义一个复数(z=x+iy)类Complex,包含:
 两个属性:实部x和虚部y
 默认构造函数 Complex(),设置x=0,y=0
 构造函数:Complex(int i,int j)
显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。
求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Complex C1,Complex C2)
 求两个复数的差的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex subComp(Complex C1,Complex C2)
求两个复数的乘积的方法:(参数是两个复数类对象,返回值是复数类对象,新复数实部=两复数实部乘积-两复数虚部乘积,新复数虚部=两复数实部与虚部交叉乘积之和,)public Complex multiComp(Complex C1,Complex C2)
比较两个复数是否相等的方法(参数是两个复数类对象,返回值是boolean类型)public boolean equalComp(Complex C1,Complex C2)
 在Application中测试该类的方法,实部x和虚部y可由main方法参数提供输入。
三、实验要求:
1. 正确地定义类、方法和属性;
2. 学会方法的参数传递和返回值的用法;
3. 熟练使用类及其成员修饰符
4.使用构造函数创建类的对象;
5. 类变量与实例变量,以及类方法与实例方法的使用
6.程序应包括各个被调用方法的执行结果的显示。
7.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。
四、实验步骤:
1. (第1题) 定义类Point及它的属性、方法和构造函数,定义主类和main(),在main()方法中创建两个坐标对象,,并通过对象调用getMiddle方法后得到一个新的点坐标,调用show()显示该对象的坐标值。
2. (第2题)定义一个复数(z=x+iy)类Complex,及它的属性、方法和构造函数;定义主类和main()方法,在main()方法中创建两个复数类Complex对象,并通过复数类对象调用它们的属性和方法,输出方法执行结果。

 

复数

package 复数;

class Complex{
    public int x;
    public int y;
    
    public Complex(){
        this.x = 0;
        this.y = 0;
    }
    
    public Complex(int x, int y){
        this.x = x;
        this.y = y;
    }
    
    public void showComp(){
        if(this.y !=0){
            if(this.y > 0){
                System.out.println(this.x + "+" + this.y + "i");
            }
            else{
                System.out.println(this.x + "-" + this.y + "i");
            }            
        }
        else{
                System.out.println(this.x);
        }
    }
    
    public Complex addComp(Complex C1,Complex C2){    
        Complex re = new Complex();
        re.x = C1.x+C2.x;
        re.y = C1.y+C2.y;
        re.showComp();
        return re;
        
        //return new Complex(C1.x+C2.x, C1.y+C2.y);        
    }
    
    public Complex sulComp(Complex C1,Complex C2){    
        Complex re = new Complex();
        re.x = C1.x - C2.x;
        re.y = C1.y - C2.y;
        re.showComp();
        return re;
        // return new Complex(C1.x-C2.x, C1.y-C2.y);        
    }
    
    public Complex multiComp(Complex C1,Complex C2){
        Complex re = new Complex();
        re.x = (C1.x * C2.x - C1.y * C2.y);
        re.y = (C1.x * C2.y + C1.y * C2.x);
        re.showComp();
        return re;
        //return new Complex((C1.x * C2.x - C1.y * C2.y) , (C1.x * C2.y + C1.y * C2.x));
    }
    
    public boolean equalComp(Complex C1,Complex C2){
        if(C1.equals(C2)){
            System.out.println("相等");
            return true;
        }
        return false;
    }
}



public class Fushu {
    public static void main(String[] args){
        Complex num1 = new Complex(3, 5); 
        Complex num2 = new Complex(7, 8);
        Complex num3 = new Complex();
        
        
        num1.showComp();
        num2.showComp();
        
        num3.addComp(num1, num2);
        num3.sulComp(num1, num2);
        num3.multiComp(num1, num2);
        num3.equalComp(num1, num2);
    }
}

点坐标

package oo;

class Point{
    public int x;
    public int y;
    public void show(){
        System.out.println(this.x + ","+ this.y);
    }
    
    public Point(int x, int y){
        this.x = x;
        this.y = y;
    }    
}

class Application{
    public void getMiddle(Point point1, Point point2){
        double mid_x = (point1.x + point2.x) / 2.0;
        double mid_y = (point1.y + point2.y) / 2.0;
        System.out.println(mid_x + "," + mid_y);
    }
}

public class OO {
    public static void main(String [] args){
        Point a1 = new Point(2, 5);
        Point a2 = new Point(7, 8);
        
        Application app = new Application();
        
        app.getMiddle(a1, a2);
        
    }
}

 

转载于:https://www.cnblogs.com/lcpholdon/p/4074770.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值