请问这样是不是重写了,C#内部的point类?

rock_333 2017-04-19 02:57:02
请问这样是不是重写了point类?还有就是father是一个对象的引用,还是讲是一个变量?请高手指教!! class Point { public int y; public int x; public int G; public int H; public Point() { } public Point(int x0, int y0, int G0, int H0, Point F) { x = x0; y = y0; G = G0; H = H0; father = F; } public Point father;\\请问这个是变量,还是对象的引用?为什么father.x这样写也可以?? } }
...全文
350 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
夏天的枫 2017-04-20
  • 打赏
  • 举报
回复
引用 4 楼 kofpsdc 的回复:
father是属性戓者是变量的话,应该不能访问x的,为什么father.x这样是也不出错?
相当于你定义了个“人”,这个“人”有属性爸爸等(姑且算还有名字属性),但是爸爸也是人,他也有“名字”这一属性。。。当然了,你的初始化人的时候,要给这个“爸爸”属性赋值,就是五楼所说
rock_333 2017-04-20
  • 打赏
  • 举报
回复
未学过,要恶补一下
白衣如花 2017-04-20
  • 打赏
  • 举报
回复
链表不知道你学过没有

Node.Next还是Node,同样的一个Point p,p.father还是Point,只是p.x和p.father.x不是一个东西

rock_333 2017-04-20
  • 打赏
  • 举报
回复
上楼的,解释很到位!
  • 打赏
  • 举报
回复
命令空间 --> 命名空间
  • 打赏
  • 举报
回复
引用 8 楼 kofpsdc 的回复:
还有一个问题  public Point(int x0, int y0, int G0, int H0, Point F)         {             x = x0;             y = y0;             G = G0;             H = H0;             father = F;         } 这里括号内的Point F,是C#内部的point,还是讲是本类的一个引用??
虽然没有把整个命令空间写全面,但是你可以使用 vs 来看其命令空间。你可以在Point 单词儿上面点击鼠标右键,然后选择右键菜单“转到定义”去查看。 语法格式问题,多实践,然后再回到与法规定上,就能理解了。这不是什么设计问题。
  • 打赏
  • 举报
回复
引用 4 楼 kofpsdc 的回复:
father是属性戓者是变量的话,应该不能访问x的,为什么father.x这样是也不出错?
为什么不能访问 .x? 比如说我写
public class S
{
    private S() { }

    public S(string name)
    {
        this.Child = new S { Name = name + "的孩子" };
    }

    public string Name;
    public S Child;
}
var x = new S("张三");
var y = x.Child.Name;
你会看到 y 的结果是“张三的孩子”。 在 S 类型的设计中,当然还是可以使用 S 类型,这很自然,完全没有问题。 .net 中的“重写”是指继承中子类 override 父类 virtual 方法、属性等等。是继承中的概念。而上述这种纯粹是组合,而不是继承。因此更谈不上重写。
rock_333 2017-04-20
  • 打赏
  • 举报
回复
还有一个问题  public Point(int x0, int y0, int G0, int H0, Point F)         {             x = x0;             y = y0;             G = G0;             H = H0;             father = F;         } 这里括号内的Point F,是C#内部的point,还是讲是本类的一个引用??
rock_333 2017-04-20
  • 打赏
  • 举报
回复
上楼的回答,很全面,
stherix 2017-04-19
  • 打赏
  • 举报
回复
请问这样是不是重写了point类?还有就是father是一个对象的引用,还是讲是一个变量?请高手指教!! 并不是重写,重写是指继承基类后子类覆盖基类的方法, 你这个类除了名字和.net自带的Point相同外,没有其他任何联系,而且原本Point是个struct,不是class public Point father;\\请问这个是变量,还是对象的引用?为什么father.x这样写也可以?? father即可以说是变量,也是一个对象的引用,或者直接说是一个对象也行,要说是一个类的实例也行,还能称之为一个类成员 因为本身一个标识符就能拥有多个身份 你不要混淆这些名词的定义 作为一个对象 ,能father.x是理所当然啊,访问它的一个公有成员
xuzuning 2017-04-19
  • 打赏
  • 举报
回复
public Point(int x0, int y0, int G0, int H0, Point F) { x = x0; y = y0; G = G0; H = H0; father = F; }
rock_333 2017-04-19
  • 打赏
  • 举报
回复
father是属性戓者是变量的话,应该不能访问x的,为什么father.x这样是也不出错?
angel6709 2017-04-19
  • 打赏
  • 举报
回复
xuzuning 2017-04-19
  • 打赏
  • 举报
回复
不是,C# 预置的 Point 是结构,不是类 father 是属性,通过他可以构成一个 Point 单向链表
正怒月神 2017-04-19
  • 打赏
  • 举报
回复
public Point() { } public Point(int x0, int y0, int G0, int H0, Point F) { x = x0; y = y0; G = G0; H = H0; father = F; } 这一段只是 构造函数的重载。 public Point father;这个是变量

111,093

社区成员

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

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

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