设计一个点类,他仅包含两个属性:横坐标和纵坐标.通过继承点类再设计一个圆类,他除了有一个圆心还有半径,还应该能计算周长和面积等,编写一个程序来测试所设计的类能否实现预定功能.
我写的程序如下:
class Point{
int x;
int y;
Point(int x,int y){
this.x=x;
this.y=y;
}
}
class Circle extends Point
{
double r,c,s;
public void getr(){
r=(x^2+y^2)^(1/2);
}
void getcands(){
c=2*3.14*r;
s=3.14*r*r;
}
void Show_Circle(){
System.out.println("c="+c+"s="+s);
}
}
class Testpoint{
public static void main(String args[]){
Point e=new Point(3,4);
Circle a=new Circle();
a.getr();
a.getcands();
a.Show_Circle();
}
}
我写的程序如下:
class Point{
int x;
int y;
Point(int x,int y){
this.x=x;
this.y=y;
}
}
class Circle extends Point
{
double r,c,s;
public void getr(){
r=(x^2+y^2)^(1/2);
}
void getcands(){
c=2*3.14*r;
s=3.14*r*r;
}
void Show_Circle(){
System.out.println("c="+c+"s="+s);
}
}
class Testpoint{
public static void main(String args[]){
Point e=new Point(3,4);
Circle a=new Circle();
a.getr();
a.getcands();
a.Show_Circle();
}
}
两者并无关联
2.Circle没有构造函数,并且Point没有无参数的构造函数
3.main函数位于Testpoint,而Testpoint不是public类,应该不会执行。
4.main中的a根本没有初始值
5.你的r是怎么得出来的?默认圆心是(0, 0)?
2.作者在程序中没有给Circle提供构造函数,这并不是问题,因为系统会使用默认的无参构造函数; 主要的问题发生在在Circle的无参构造函数被自动调用时的第一条语句是运行Point无参构造函数,但是作者没有为Point提供无参构造; 所以在Point加一个无参构造后就解决这个问题。3.并不能说main函数一定得在public类中, 非public类也可以,并且在可以正常运行; 比如这个程序可以在编译后提示符输入: java Testpoint运行;
4.同楼上
5.同楼上
int x;
int y;
Point(int x,int y){
this.x=x;
this.y=y;
}
Point(){}
}
class Circle extends Point
{
double r,c,s;
public Circle(int x1,int y1)
{
super(x1,y1);
}
public void getr(){
r=(x^2+y^2)^(1/2);
}
void getcands(){
c=2*3.14*r;
s=3.14*r*r;
}
void Show_Circle(){
System.out.println("c="+c+"s="+s);
}
}
class Testpoint{
public static void main(String args[]){
Circle a=new Circle(3,4);
a.getr();
a.getcands();
a.Show_Circle();
}
}