1 | 【问题描述】 |
方法1
package Test;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("input c1:");
double a1 = input.nextDouble();
double b1 = input.nextDouble();
System.out.println("input c2:");
double a2 = input.nextDouble();
double b2 = input.nextDouble();
System.out.println("ComplexNumber a: " + a1 + " + " + b1 + "i");
System.out.println("ComplexNumber b: " + a2 + " + " + b2 + "i");
double c1 = a1 + a2;
double c2 = b1 + b2;
System.out.println("(a + b) = " + c1 + " + " + c2 + "i");
double d1 = a1 - a2;
double d2 = b1 - b2;
System.out.println("(a - b) = " + d1 + " + " + d2 + "i");
double e1 = a1 * a2 - b1 * b2;
double e2 = a1*b2 + a2*b1;
System.out.println("(a * b) = " + e1 + " + " + e2 + "i");
}
}
方法2
import java.util.Scanner;
public class Complex {
double a;
double b;
Complex(double a,double b){
this.a=a;
this.b=b;
}
Complex(){
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
try{
System.out.println("input c1:");
Complex c1=new Complex(in.nextDouble(),in.nextDouble());
System.out.println("input c2:");
Complex c2=new Complex(in.nextDouble(),in.nextDouble());
System.out.println("ComplexNumber a: "+c1.a+" + "+c1.b+"i");
System.out.println("ComplexNumber b: "+c2.a+" + "+c2.b+"i");
System.out.println("(a + b) = "+(c1.a+c2.a)+" + "+(c1.b+c2.b)+"i");
System.out.println("(a - b) = "+(c1.a-c2.a)+" + "+(c1.b-c2.b)+"i");
System.out.println("(a * b) = "+(c1.a*c2.a-c1.b*c2.b)+" + "+(c1.a*c2.b+c1.b*c2.a)+"i");
}
finally{
in.close();
}
}
}
【问题描述】定义一个描述三角形的类,名字为Triangle,属性有:
private double a, b, c;
方法有:
double getPerimeter(),计算三角形的周长
double getArea(),计算三角形的面积
public void setSide(double x, double y, double z),对属性a、b、c分别赋值为x、y、z
另外,有构造方法:
public Triangle(double a, double b, double c),如果a、b、c不能构成一个三角形,则a、b、c都赋值为0
【输入形式】三个数,表示三角形的三边长度。
【输出形式】三角形的周长、面积、以及三边的长度。
【样例输入1】
3
4
5
【样例输出1】
perimeter=12.0
area=6.0
a=3.0,b=4.0,c=5.0
【样例输入2】
1
2
3
【样例输出2】
perimeter=0.0
area=0.0
a=0.0,b=0.0,c=0.0
【样例说明】
输入和输出的格式要和指定格式严格匹配,否则不得分。
【评分标准】
结果完全正确得20分,每个测试点4分。
【备注】
从键盘读入双精度数,可以用如下代码:
Scanner in = new Scanner(System.in);
double n = in.nextDouble();
使用Scanner类,需要导入import java.util.Scanner;
方法1
import java.util.Scanner;
public class com {
private double a,b,c;
com(){};
public double getPerimeter() {
return this.a+this.b+this.c;
}
public double getArea() {
double p=(this.a+this.b+this.c)/2;
double sArea=Math.sqrt(p*(p-a)*(p-b)*(p-c));
return sArea;
}
public void setSide(double x,double y,double z) {
this.a=x;
this.b=y;
this.c=z;
}
public com(double a,double b,double c) {
if((a+b)<=c || (a+c)<=b || (b+c)<=a) a=b=c=0;
}
public static void main(String[] args) {
Scanner scan= new Scanner(System.in);
double x=scan.nextDouble();
double y=scan.nextDouble();
double z=scan.nextDouble();
com c= new com(x,y,z);
if((x+y)<=z||(x+z)<=y|| (y+z)<=x) { }
else {
c.setSide(x, y, z);
}
System.out.println("perimeter="+c.getPerimeter());
System.out.println("area="+c.getArea());
System.out.println("a="+c.a+",b="+c.b+",c="+c.c);
}
}
方法2
package com;
import java.util.*;
public class Triangle {
private double a,b,c;
double getPerimeter() {
return this.a + this.b + this.c;
}
double gerArea() {
double p = (this.a + this.b + this.c)/2;
return Math.sqrt(p*(p-this.a)*(p-this.b)*(p-this.c));
}
public void setSide(double x, double y, double z) {
this.a = x;
this.b = y;
this.c = z;
}
public Triangle(double a, double b, double c) {
if ((a+b)<=c || (a+c)<=b || (b+c)<=a) {
a = b = c =0;
}else {
setSide(a, b, c);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double x = sc.nextDouble();
double y = sc.nextDouble();
double z = sc.nextDouble();
Triangle s = new Triangle(x,y,z);
System.out.println("perimeter=" + s.getPerimeter());
System.out.println("area=" + s.gerArea());
System.out.println("a=" + s.a + ",b=" + s.b + ",c=" + s.c);
}
}
总结:
1:没有void 需要返回 ;并且有void 才能在函数中被调用
2:this.a代表是这个类的实例的变量,该setA方法所属的类肯定有个a变量,this.a指的就是它,而后面的a是调用该方法是传进来的int a参数,其实这就是一个赋值语句。
3:在类里可以作属性成员实例化这样就可以每个方法都可调用 放在方法里就只能在方法里使用 定义成静态在其他类都可以调了哦