| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 787 人关注过本帖
标题:帮忙改改这个程序!
只看楼主 加入收藏
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
得分:0 

我写了个 写的是不太好 但就是说明下这个意思
class TuXing{
//定义边长
double c,k;

//构造方法
public TuXing(){

}

//求面积方法

public double mj(double c,double k){
return (c*k);
}
//重载
public double mj(double c){
return 0;
}
//求周长方法
public double zc(double c,double k){
return (2*(c+k));
}
public double zc(double c){
return 0;
}

}
class zhengfang extends TuXing{
double b;

public zhengfang(){

}

//重写父类方法
public double mj(double a){
return (a*a);
}

public double zc(double b){
return 4*b;
}
}

public class Testt{
public static void main(String[] args) {
TuXing a=new zhengfang();

System.out.println( "mj=" +a.mj(3.0));
System.out.println( "zc=" +a.zc(4.0));

TuXing m= new TuXing();
System.out.println(m.mj(3.0,4.0)+"\t"+m.zc(4.0,5.0));
}
}

2007-04-03 23:47
神vLinux飘飄
Rank: 1
等 级:新手上路
威 望:1
帖 子:309
专家分:0
注 册:2007-1-27
收藏
得分:0 
好例子,值得去学习,很有继承的特点

泛出微微的蓝色的光,像有生命般涌动着,闪烁着,平滑而优美,达到了机械和美学结合的最高境界
2007-04-04 11:04
双面人
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2006-11-6
收藏
得分:0 
[QUOTE]

“你调用方法不对 静态类才可以 用类名.方法 的

这是重写 不是重载”

[/QUOTE]

这是说那块了,我不太明白?

2007-04-04 15:08
双面人
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2006-11-6
收藏
得分:0 

麻烦大家在给看看这段代码?急用!

2007-04-04 23:48
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
得分:0 
以下是引用双面人在2007-4-3 15:29:29的发言:
题目要求: 1 编程实现矩形类,其中应包括计算矩形周长和面积的方法
2 为上面定义的矩形类派生一个子类:正方形类。若正方形类的操作同样是求周长和面积,则这个子类除了从父类那里继承来的方法外,还需要定义哪些方法。列出正方形类的所有变量和方法。编程检查、运行所编写的正方形类。

这是我写的代码,可是有错误,希望大家给看看,然后帮忙给改改。。。

class juxing{
double c,k,mj,zc;
void mj(double x1,double x2){
c=x1;
k=x2;
mj=c*k;
}
void zc(double x3,double x4){
c=x3;
k=x4;
zc=2*c*k;
}
}
class zhengfang extends juxing{ //这个类 从你写的看 完全没必要 去extends juxing 因为没体现出 继承 当然不是说这里写的不对
double b;
void mj(double x1){
b=x1;
mj=b*b;
}
void zc(double x2){
b=x2;
mj=4*b;
}
}
public class javalx{
public static void main(String[] args) {

//以下2句 从你写的看 juxing 应该是一个 静态类(static) 因为只有 静态类才可以这样用

juxing.mj(3.0,4.0);
juxing.zc(4.0,5.0);
System.out.println( "mj=" + mj);
System.out.println( "zc=" + zc);
}
}

2007-04-05 05:01
双面人
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2006-11-6
收藏
得分:0 
回复:(whw19840229)以下是引用双面人在2007-4-3 15...
"没体现出 继承 " 那应该怎样做才体现出继承呢?

“juxing 应该是一个 静态类(static) 因为只有 静态类才可以这样用” 是不是应该在JUXING前加关键字STATIC
2007-04-05 12:41
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 
class juxing {
double c, k, mj, zc;
void mj(double x1, double x2) {
c = x1;
k = x2;
mj = c * k;
}
void zc(double x3, double x4) {
c = x3;
k = x4;
zc = 2 * c * k;
}
void printItMyWay(){
}
}
class zhengfang extends juxing {
double b;
void mj(double x1) {
b = x1;
mj = b * b;
}
void zc(double x2) {
b = x2;
mj = 4 * b;
}
void printItMyWay(){
System.out.println("周长为:"+zc);
System.out.println("面积为:"+mj);
}
}
public class javalx {
public static void main(String[] args) {
juxing jx=new zhengfang();
jx.mj(3.0, 4.0); //这里调用的是子类从父类继承下来的方法,并不是父类中的方法
jx.zc(4.0, 5.0); //同上
System.out.println("mj=" + jx.mj);
System.out.println("zc=" + jx.zc);
jx.printItMyWay(); //这里也同样用的是子类中的方法,而且对父类中的printItMyWay方法重写
}
}

输出结果是:
mj=12.0
zc=40.0
周长为:40.0
面积为:12.0

[此贴子已经被作者于2007-4-5 18:30:15编辑过]


越是深入的学习,就越来越感觉到自己知道的太少了...
2007-04-05 18:10
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 
以下是引用双面人在2007-4-5 12:41:21的发言:
"没体现出 继承 " 那应该怎样做才体现出继承呢?

“juxing 应该是一个 静态类(static) 因为只有 静态类才可以这样用” 是不是应该在JUXING前加关键字STATIC

juxing不要声明成static 要是想直接用 类名调用其方法的话 只要把那个方法声明成static就可以了
但是 那个方法中的成员变量也要声明成static


越是深入的学习,就越来越感觉到自己知道的太少了...
2007-04-05 18:13
喃瑟
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2007-1-25
收藏
得分:0 
以下是引用whw19840229在2007-4-3 23:39:44的发言:

你调用方法不对 静态类才可以 用类名.方法 的


这是重写 不是重载

L 你是L?


光与影的1/2
2007-04-05 18:21
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

class zhengfang extends TuXing{
double b;

public zhengfang(){

}

//重写父类方法
public double mj(double a){
return (a*a);
}

public double zc(double b){
return 4*b;
}
}



重写是多于的...直接用父类的函数就可以了!
class   juxing
{
protected double a,b;
juxing(double a,double b)
{
this.a=a;
this.b=b;
}
public double mj()
{
return a*b;
}
public double zc()
{
return 2*a+2*b;
}
}
class zhengfang extends TuXing{
public zhengfang(double s)
{
this.a=this.b=s;
}
}




[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-04-05 19:55
快速回复:帮忙改改这个程序!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025799 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved