读书人

菜鸟都快把头发挠没了 向众人请问

发布时间: 2012-01-29 21:39:32 作者: rapoo

初学者都快把头发挠没了 向众人请教
//若有一个接口A说明一个面积方法area(),

// interface A {

// public double area();

//}

//请设计一个三角形类GCLass实现接口A中的area()方法,GClass构造函数的参数为三边长s1、s2、s3,均为整数。


//上面是题目要求,下面是写的一段程序 可是老不对 请CSDN帮忙

import java.math;

interface A
{
public double area();
}

class GClass1 implements A
{
public double area(int a,int b,int c)
{
double a1,s;
a1 = (a + b + c) / 2;
s=Sqr(s * (s - a) * (s - b) * (s - c));
System.out.println( "面积是: "+s);
}

public static void main(String args[])
{
GClass s0=new GClass();
s0.area(3,5,7);
}

}

[解决办法]
package com;

interface A {

public double area(int a, int b, int c);
}

class GClass1 implements A {

public double area(int a, int b, int c) {

double a1 = 0, s = 0;
a1 = (a + b + c);
s = Math.sqrt((a1 * (a1 - a) * (a1 - b) * (a1 - c)));
System.out.println( "面积是: " + s);
return s;
}

public static void main(String args[]) {

GClass1 s0 = new GClass1();
s0.area(3, 5, 7);
}

}

[解决办法]
刚才的程序有点问题:

package com;

interface A {

public double area(int a, int b, int c);
}

class GClass1 implements A {

public double area(int a, int b, int c) {

double a1 = 0, s = 0;
a1 = (double) (a + b + c) / 2;
s = Math.sqrt(a1 * (a1 - a) * (a1 - b) * (a1 - c));
System.out.println( "面积是: " + s);
return s;
}

public static void main(String args[]) {

GClass1 s0 = new GClass1();
s0.area(3, 5, 7);
}

}

[解决办法]
import java.math;

interface A
{
public double area();
}

class GClass1 implements A
{
int s1,s2,s3;
GCLass1(int a,int b,int c)
{
s1=a;
s2=b;s3=c;
}
public double area()
{
double a1,s;
a1=s=0.0;
a1 = (a + b + c);
s = Math.sqrt((a1 * (a1 - s1) * (a1 - s2) * (a1 - s3)));
System.out.println( "面积是: "+s);
}

public static void main(String args[])
{
GClass s0=new GClass(3,5,7);
s0.area();
}

}

//计算三角形的面积我不记得了......不知道对不对
[解决办法]

如果算法不对,就改一下area()里的算法.好像是要/2的吧

double a1,s;
a1=s=0.0;
a1 = (a + b + c)/2;//========> 是不是要/2的呢
s = Math.sqrt((a1 * (a1 - s1) * (a1 - s2) * (a1 - s3)));
System.out.println( "面积是: "+s);

[解决办法]
yes,是要/2的...
[解决办法]
interface A {
public double area();
}


public class GClass1 implements A {
int a, b, c;
//初始化赋值
public GClass1(int a, int b, int c) {
this.a = a;
this.b = b;
this.c = c;
}
//重写 area() 方法 重写时要求 返回值 方法名称 参数个数 都要与接口的方法一样
public double area() {
double a1, s;
a1 = (a + b + c) / 2;
s = Math.sqrt(a1 * (a1 - a) * (a1 - b) * (a1 - c));
System.out.println( "面积是: " + s);
return s;
}
//测试调用
public static void main(String args[]) {
GClass1 s0 = new GClass1(3, 4, 5);
s0.area();
}
}


[解决办法]
接口里的方法和实现类的方法参数要保持一致

就比如说: public void test(int a)
public void test(double a)
public void test()
这里是3个不同的方法,你调用方法的时候传的参数不一样,用到的方法也会不一样
[解决办法]
实现类中的方法要和所实现的接口中的方法签名一致才可以,你接口中声明的是无参 area()方法,而类中是带三个参数的方法,所以出现的错误应该是提示你没有实现接口中的方法。
[解决办法]

读书人网 >J2SE开发

热点推荐