C#层级结构

豆豆没有AC 2019-04-06 04:35:16
求个答案!!!
...全文
341 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxdnzxb6369 2019-04-08
  • 打赏
  • 举报
回复
书上写的没问题,
先构造对象的基础方法(与作接口有相似性),比如:
我要喝水(生成此类(条件或参数)【可重构】;水(条件或参数)【可重构】),

扩展此类(重写,继承) 我要喝水(生成此类(条件或参数)【可重构,随便构】;水(汽水)【重构】;增加方法或属性)

豆豆没有AC 2019-04-07
  • 打赏
  • 举报
回复
引用 4 楼 小眼聚光~的回复:

class Program
{
static void Main(string[] args)
{
//调用函数(步骤5,6)输出
SpitShapeChildren();
Console.ReadKey();
}
//步骤5
public static shape[] StoreShape()
{
return new List<shape>() {
new tangle(10d),new circle(10d),new rectangle(10d),
}.ToArray();
}
//步骤6
public static void SpitShapeChildren()
{
shape[] shapes = StoreShape();
if (shapes != null && shapes.Length > 0)
{
foreach (shape item in shapes)
{
//输出面积
Console.Write(item.mianji() + Environment.NewLine);
//输出周长
Console.Write(item.zhouchang() + Environment.NewLine);
//输出类型
Console.Write(item.mianji().GetType() + Environment.NewLine);
}
}
}
}
#region MyRegion
//步骤1
public abstract class shape
{
public shape()
{
}
public shape(double x, double y)
{
this.x = x;
this.y = y;
}
public double x { get; set; }
public double y { get; set; }
/// <summary>
/// 抽象方法求面积
/// </summary>
/// <returns></returns>
public abstract double mianji();
/// <summary>
/// 虚方法求周长
/// </summary>
/// <returns></returns>
public virtual double zhouchang()
{
return x+y;
}
}
//步骤2
public class tangle : shape
{
public tangle(double z) : base(10, 10)
{
this.z = z;
}
double z { get; set; }

public sealed override double mianji()
{
return (this.z + base.x + base.y) / 2;
}
public override double zhouchang()
{
return (this.z + base.x + base.y);
}
}
//步骤3
public class circle : shape
{
public circle(double R) : base(R / 2, 0)
{
this.R = R;
}
const double pi = 3.14d;
double R { get; set; }

public override double mianji()
{
return Math.Pow(base.x, 2) * pi;
}
public override double zhouchang()
{
return base.x * 2 * pi;
}
}
//步骤4
public class rectangle : shape
{
public rectangle(double z) : base(10, 10)
{
this.z = z;
}
double width { get => base.x; set => width = base.x; }
double height { get => base.y; set => width = base.y; }
double z { get; set; }
public override double mianji()
{
return (base.x + base.y + this.z) / 2;
}



}
#endregion


1、我也研究半天,感觉书本上的逻辑有点不通,(可能我没想清楚
2、大致的写法应该是这样
谢谢,谢谢,我也觉得书的逻辑有问题
qq_44416890 2019-04-07
  • 打赏
  • 举报
回复
引用 4 楼 小眼聚光~的回复:

class Program
{
static void Main(string[] args)
{
//调用函数(步骤5,6)输出
SpitShapeChildren();
Console.ReadKey();
}
//步骤5
public static shape[] StoreShape()
{
return new List<shape>() {
new tangle(10d),new circle(10d),new rectangle(10d),
}.ToArray();
}
//步骤6
public static void SpitShapeChildren()
{
shape[] shapes = StoreShape();
if (shapes != null && shapes.Length > 0)
{
foreach (shape item in shapes)
{
//输出面积
Console.Write(item.mianji() + Environment.NewLine);
//输出周长
Console.Write(item.zhouchang() + Environment.NewLine);
//输出类型
Console.Write(item.mianji().GetType() + Environment.NewLine);
}
}
}
}
#region MyRegion
//步骤1
public abstract class shape
{
public shape()
{
}
public shape(double x, double y)
{
this.x = x;
this.y = y;
}
public double x { get; set; }
public double y { get; set; }
/// <summary>
/// 抽象方法求面积
/// </summary>
/// <returns></returns>
public abstract double mianji();
/// <summary>
/// 虚方法求周长
/// </summary>
/// <returns></returns>
public virtual double zhouchang()
{
return x+y;
}
}
//步骤2
public class tangle : shape
{
public tangle(double z) : base(10, 10)
{
this.z = z;
}
double z { get; set; }

public sealed override double mianji()
{
return (this.z + base.x + base.y) / 2;
}
public override double zhouchang()
{
return (this.z + base.x + base.y);
}
}
//步骤3
public class circle : shape
{
public circle(double R) : base(R / 2, 0)
{
this.R = R;
}
const double pi = 3.14d;
double R { get; set; }

public override double mianji()
{
return Math.Pow(base.x, 2) * pi;
}
public override double zhouchang()
{
return base.x * 2 * pi;
}
}
//步骤4
public class rectangle : shape
{
public rectangle(double z) : base(10, 10)
{
this.z = z;
}
double width { get => base.x; set => width = base.x; }
double height { get => base.y; set => width = base.y; }
double z { get; set; }
public override double mianji()
{
return (base.x + base.y + this.z) / 2;
}



}
#endregion


1、我也研究半天,感觉书本上的逻辑有点不通,(可能我没想清楚
2、大致的写法应该是这样
反手就是 一个 关注
qq_44416890 2019-04-07
  • 打赏
  • 举报
回复
引用 4 楼 小眼聚光~的回复:

class Program
{
static void Main(string[] args)
{
//调用函数(步骤5,6)输出
SpitShapeChildren();
Console.ReadKey();
}
//步骤5
public static shape[] StoreShape()
{
return new List<shape>() {
new tangle(10d),new circle(10d),new rectangle(10d),
}.ToArray();
}
//步骤6
public static void SpitShapeChildren()
{
shape[] shapes = StoreShape();
if (shapes != null && shapes.Length > 0)
{
foreach (shape item in shapes)
{
//输出面积
Console.Write(item.mianji() + Environment.NewLine);
//输出周长
Console.Write(item.zhouchang() + Environment.NewLine);
//输出类型
Console.Write(item.mianji().GetType() + Environment.NewLine);
}
}
}
}
#region MyRegion
//步骤1
public abstract class shape
{
public shape()
{
}
public shape(double x, double y)
{
this.x = x;
this.y = y;
}
public double x { get; set; }
public double y { get; set; }
/// <summary>
/// 抽象方法求面积
/// </summary>
/// <returns></returns>
public abstract double mianji();
/// <summary>
/// 虚方法求周长
/// </summary>
/// <returns></returns>
public virtual double zhouchang()
{
return x+y;
}
}
//步骤2
public class tangle : shape
{
public tangle(double z) : base(10, 10)
{
this.z = z;
}
double z { get; set; }

public sealed override double mianji()
{
return (this.z + base.x + base.y) / 2;
}
public override double zhouchang()
{
return (this.z + base.x + base.y);
}
}
//步骤3
public class circle : shape
{
public circle(double R) : base(R / 2, 0)
{
this.R = R;
}
const double pi = 3.14d;
double R { get; set; }

public override double mianji()
{
return Math.Pow(base.x, 2) * pi;
}
public override double zhouchang()
{
return base.x * 2 * pi;
}
}
//步骤4
public class rectangle : shape
{
public rectangle(double z) : base(10, 10)
{
this.z = z;
}
double width { get => base.x; set => width = base.x; }
double height { get => base.y; set => width = base.y; }
double z { get; set; }
public override double mianji()
{
return (base.x + base.y + this.z) / 2;
}



}
#endregion


1、我也研究半天,感觉书本上的逻辑有点不通,(可能我没想清楚
2、大致的写法应该是这样
你真 热心肠 在这里也看到了你
小眼聚光~ 2019-04-07
  • 打赏
  • 举报
回复

class Program
{
static void Main(string[] args)
{
//调用函数(步骤5,6)输出
SpitShapeChildren();
Console.ReadKey();
}
//步骤5
public static shape[] StoreShape()
{
return new List<shape>() {
new tangle(10d),new circle(10d),new rectangle(10d),
}.ToArray();
}
//步骤6
public static void SpitShapeChildren()
{
shape[] shapes = StoreShape();
if (shapes != null && shapes.Length > 0)
{
foreach (shape item in shapes)
{
//输出面积
Console.Write(item.mianji() + Environment.NewLine);
//输出周长
Console.Write(item.zhouchang() + Environment.NewLine);
//输出类型
Console.Write(item.mianji().GetType() + Environment.NewLine);
}
}
}
}
#region MyRegion
//步骤1
public abstract class shape
{
public shape()
{
}
public shape(double x, double y)
{
this.x = x;
this.y = y;
}
public double x { get; set; }
public double y { get; set; }
/// <summary>
/// 抽象方法求面积
/// </summary>
/// <returns></returns>
public abstract double mianji();
/// <summary>
/// 虚方法求周长
/// </summary>
/// <returns></returns>
public virtual double zhouchang()
{
return x+y;
}
}
//步骤2
public class tangle : shape
{
public tangle(double z) : base(10, 10)
{
this.z = z;
}
double z { get; set; }

public sealed override double mianji()
{
return (this.z + base.x + base.y) / 2;
}
public override double zhouchang()
{
return (this.z + base.x + base.y);
}
}
//步骤3
public class circle : shape
{
public circle(double R) : base(R / 2, 0)
{
this.R = R;
}
const double pi = 3.14d;
double R { get; set; }

public override double mianji()
{
return Math.Pow(base.x, 2) * pi;
}
public override double zhouchang()
{
return base.x * 2 * pi;
}
}
//步骤4
public class rectangle : shape
{
public rectangle(double z) : base(10, 10)
{
this.z = z;
}
double width { get => base.x; set => width = base.x; }
double height { get => base.y; set => width = base.y; }
double z { get; set; }
public override double mianji()
{
return (base.x + base.y + this.z) / 2;
}



}
#endregion


1、我也研究半天,感觉书本上的逻辑有点不通,(可能我没想清楚
2、大致的写法应该是这样
threenewbee 2019-04-06
  • 打赏
  • 举报
回复
反正编这种大学教材的人,自己也未必懂什么C#原理。前几年西北某个民办大学的老板,就是一个卖牛肉面的,发了小财于是就开了个大学。搞个假文凭镀镀金,然后也编了一本计算机教材呢。
threenewbee 2019-04-06
  • 打赏
  • 举报
回复
都是从大学过来的,这种大学课本上的题目,你管它是什么东西,反正记住一条真理,就是它出什么题目,你往书前面翻几张纸,肯定前面有例题。然后你只要套用下,就会了。就好比做语文的阅读理解,答案在哪里,在文章中找。
张天星 2019-04-06
  • 打赏
  • 举报
回复
看书都看不懂的话,那么你可以考虑看看视频。
https://edu.51cto.com/course/10602.html
或者你用搜索引擎找找免费的,总要自己学会的,对不对,一直要答案也没有意义啊

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧