public class Add : Calculation { //构造函数 public Add(double num1, double num2) : base(num1, num2) { } //重写父类中的抽象方法 public override double YunSuan() { return this.DouNum1 + this.DouNum2; } }
时间: 2023-06-14 12:03:28 浏览: 88
这是一个继承自 Calculation 类的 Add 类,它实现了 Calculation 中的抽象方法 YunSuan(),并且在其中实现了加法运算。构造函数接收两个 double 类型的参数并传递给父类的构造函数。通过继承 Calculation 类,Add 类可以使用 Calculation 类中的属性和方法,同时也可以重写 Calculation 类中的抽象方法。
相关问题
%input parameters: R=32%Microns n1=1.37 n2=1.27 CA=71 %degrees inputAngle=30 %degrees gridLinesOn=true %Calculation Resolution: dAngle=0.005 %radians wavelengths=linspace(0.3, 0.800, 50); %microns %------------------------------------------------------ thetaOut=[0:dAngle:pi/2]; phiOut=[0:dAngle:pi*2]; %Primary calculation: it should be noted that this calculation takes into %acocunt refraction from n1 medium to air. outMap=Intensity_3D(wavelengths, thetaOut, phiOut, R, CA, inputAngle, n1, n2); %% C=IntensityToColor(wavelengths, outMap); %image(C); C_sphere=sphericalProjection( C, thetaOut, phiOut ); %Output image: figure image([-1, 1], [-1, 1], C_sphere) hold on title(['\theta:', num2str(inputAngle), '^o, R:', num2str(R), '\mu m \eta: ', num2str(CA), '^o' ]) axis image axis off t=linspace(0, 2*pi); plot(cos(t), sin(t), 'w', 'linewidth', 1) if (gridLinesOn) %phi: for p=0:pi/4:pi plot([cos(p), -cos(p)], [sin(p), -sin(p)], 'w', 'linewidth', 1) hold on end % theta: for thetaWhite=[pi/8:pi/8:pi/2]; plot(sin(thetaWhite)*cos(t), sin(thetaWhite)*sin(t), 'w', 'linewidth', 1) end end怎么理解
这段代码是一个 MATLAB 语言的程序,主要用于计算一个球形物体的光强分布,并进行可视化。程序中的各个变量含义如下:
- R:球体半径,单位为微米;
- n1、n2:入射光线所在介质和球体内介质的折射率;
- CA:球体表面的接触角,单位为度;
- inputAngle:入射光线与球体表面法线的夹角,单位为度;
- dAngle:计算球体表面上采样点的角度间隔,单位为弧度;
- wavelengths:计算光强分布的波长范围,单位为微米;
- thetaOut、phiOut:球面坐标系下的采样点角度范围,用于计算球面上每个采样点的光强;
- outMap:计算得到的球面上每个采样点的光强值;
- C、C_sphere:将光强值转化为颜色,用于可视化球体上每个采样点的光强分布;
- t:用于绘制球面上的圆形边界;
- gridLinesOn:控制是否绘制网格线。如果为 true,则绘制球面上的经线和纬线。
程序主要分为三个部分:
1. 计算球面上每个采样点的光强分布:
使用 Intensity_3D 函数计算球面上每个采样点的光强分布,该函数的输入参数为波长、采样点的极角和方位角、球体半径、接触角、入射光线的夹角和介质的折射率。注意,该函数内部已经考虑了光线的折射现象。
2. 可视化球面上每个采样点的光强分布:
将计算得到的光强分布转化为颜色,并使用 sphericalProjection 函数将颜色映射到球面上。最后,使用 image 函数和 plot 函数将可视化结果显示出来。具体来说,image 函数用于在二维平面上显示球面上每个采样点的颜色,plot 函数用于绘制球面的圆形边界和网格线(如果需要)。
3. 绘制球面上的网格线:
如果 gridLinesOn 为 true,则绘制球面上的经线和纬线。具体来说,使用 for 循环分别绘制经线和纬线。经线的范围为 0 到 2π,每隔 π/4 绘制一条经线;纬线的范围为 0 到 π/2,每隔 π/8 绘制一条纬线。
public class Calculator extends JFrame { private JPanel result, button; private JLabel show; private JButton CLR, add, minus, Multiply, divide; private JTextField field; private Double answer; private String number; public Calculator() { super("Calculator"); this.setLocationRelativeTo(null);// set up window this.setResizable(false); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setSize(600, 200); result = new JPanel(); answer = 0.0 ; show = new JLabel(Double.toString(answer), SwingConstants.RIGHT);// let the result at the right of the field result.add(show); JTextField filed = new JTextField(Double.toString(answer));// setup the size of the text field filed.setColumns(6); filed.setHorizontalAlignment(JTextField.RIGHT); button = new JPanel(); button.setLayout(new GridLayout(1, 5)); CLR = new JButton("CLR");// add the buttons of calculation. add = new JButton("+"); minus = new JButton("-"); Multiply = new JButton("*"); divide = new JButton("/"); button.add(CLR); button.add(add); button.add(minus); button.add(Multiply); button.add(divide); CLR.addActionListener(e -> {// clear answer = 0.0; show.setText(Double.toString(answer)); field.setText(" "); }); add.addActionListener(e -> {// add number = field.getText(); if (!number.equals(null)) { double value = Double.parseDouble(number); answer += value; show.setText(Double.toString(answer)); field.setText(""); } }); minus.addActionListener(e -> {// minus number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer -= value; show.setText(Double.toString(answer)); field.setText(""); } }); Multiply.addActionListener(e -> {// multiply number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer *= value; show.setText(Double.toString(answer)); field.setText(""); } }); divide.addActionListener(e -> {// divide number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer /= value; show.setText(Double.toString(answer)); field.setText(""); } }); add(button); add(field); add(result); this.setLayout(new GridLayout(3, 1)); this.setVisible(true); }
你好,看起来这是一个实现简单计算器的 Java Swing 程序。程序界面有一个文本框和一些按钮,可以进行加减乘除等基本运算。
程序中的 `JTextField` 组件 `field` 用于输入数字,每当用户点击一个按钮时,程序会读取 `field` 中的数字并进行相应的运算。运算结果会显示在 `JLabel` 组件 `show` 中。
程序中的 `CLR` 按钮可以清除输入的数字并将结果重置为 0。其他按钮则分别对应加、减、乘、除四种运算。当用户点击这些按钮时,程序会从 `field` 中读取数字,并根据当前的运算符进行相应的运算,然后将结果显示在 `show` 中。
这个程序很简单,但可以帮助你了解 Java Swing 程序的基本结构和事件处理机制。如果你想深入了解 Java Swing,可以查看相关的文档或书籍。
阅读全文