2020年7月28日Java学习日记
学习内容
1.三维坐标向量类
设计一个描述三维坐标的向量类vector3D,成员如下:
数据成员:
- 三个坐标x,y,z,float类型,私有访问属性
公有函数成员:
-
三个参数均有默认值的构造函数,默认值为0,0,0;
-
完成输入输出,输出格式为(x, y, z);
-
完成加法+、减法-、数乘*运算;
在主函数中定义两个vector3D类对象v1,v2,均不带参数,之后输入数字1或2选择为v1输入赋值,还是为v1和v2输入赋值,对v1和v2进行加、减运算,对v1进行数乘运算,乘数由用户输入,最后输出三种运算结果。
1 import java.util.Scanner; 2 //三维向量坐标类 3 public class Vector3D { 4 private float x; 5 private float y; 6 private float z; 7 public Vector3D() { 8 this.x=0; 9 this.y=0; 10 this.z=0; 11 } 12 public Vector3D(float x, float y, float z) { 13 this.x = x; 14 this.y = y; 15 this.z = z; 16 } 17 public void input() { 18 Scanner in=new Scanner(System.in); 19 x=in.nextFloat(); 20 y=in.nextFloat(); 21 z=in.nextFloat(); 22 } 23 public void display() { 24 System.out.println("("+x+","+y+","+z+")"); 25 } 26 //加法 27 public Vector3D add(Vector3D v) { 28 float a=x+v.x; 29 float b=y+v.y; 30 float c=z+v.z; 31 Vector3D p=new Vector3D(a,b,c); 32 return p; 33 } 34 //减法 35 public Vector3D sub(Vector3D v) { 36 float a=x-v.x; 37 float b=y-v.y; 38 float c=z-v.z; 39 Vector3D p=new Vector3D(a,b,c); 40 return p; 41 } 42 //数乘 43 public Vector3D mul(float n) { 44 float a=x*n; 45 float b=y*n; 46 float c=z*n; 47 Vector3D p=new Vector3D(a,b,c); 48 return p; 49 } 50 public static void main(String[] args) { 51 int n; 52 Vector3D v1=new Vector3D(); 53 Vector3D v2=new Vector3D(); 54 Scanner in=new Scanner(System.in); 55 System.out.println("1.为三维向量v1赋值并进行数乘运算"); 56 System.out.println("2.为三维向量v1、v2赋值并进行加、减运算"); 57 System.out.print("请输入你要进行的操作编号:"); 58 n=in.nextInt(); 59 if(n==1) { 60 float t; 61 Vector3D v; 62 System.out.print("请输入v1的三维坐标:"); 63 v1.input(); 64 System.out.print("请输入乘数:"); 65 t=in.nextFloat(); 66 v=v1.mul(t); 67 System.out.print("数乘结果为:"); 68 v.display(); 69 } 70 if(n==2) { 71 System.out.print("请输入v1的三维坐标:"); 72 v1.input(); 73 System.out.print("请输入v2的三维坐标:"); 74 v2.input(); 75 System.out.print("相加结果为:"); 76 (v1.add(v2)).display(); 77 System.out.print("相减结果为:"); 78 (v1.sub(v2)).display(); 79 } 80 } 81 }