【问题标题】:this and super keywords in Java constructorsJava 构造函数中的 this 和 super 关键字
【发布时间】:2012-03-12 21:28:39
【问题描述】:

我是线程新手,正在努力理解如何实现它们。我对它们是什么以及它们如何工作有一个基本的了解。

现在我有两个文件,它们通过套接字连接,我可以来回写入字节。此分配的目的是实现多用途。我的意思是我希望能够输入一条消息并同时接收一条消息。这就是线程的用武之地。

我在 oracle 页面和许多其他网站上阅读了有关线程教程的文章,但我仍然不知道如何实现线程。目前我知道的是:

  1. 您可以扩展或实现线程类。我目前正在扩展线程类。
  2. 我还知道,通过创建构造函数,您可以将该构造函数作为线程调用。

我的困惑:

  1. 很多教程都在引用中使用“this”关键字,我对它是什么以及为什么要使用它感到困惑。
  2. 很多教程也使用“super”关键字。我总是对它是什么以及为什么要使用它感到困惑。

如果您认为有帮助,我可以提供更多信息和我当前用于连接这两个类的代码。非常感谢任何与此主题相关的反馈。

【问题讨论】:

  • Read Java Concurrency in Practice - 这是我读过的任何语言的应用并发方面最好的书。
  • 您是否阅读过Using the this KeywordUsing the Keyword super 上的Java 教程?
  • 我不想变得粗鲁,但线程是非常复杂的野兽,无法正确编程。如果你还不明白thissuper 是什么,那么你现在要搞乱线程还为时过早。从基础开始,了解什么是对象和继承。
  • 如果您在使用thissuper 时遇到问题,那么您的问题比线程问题更基本。您需要通过基本的 Java 教程(尝试 Oracle 网站上的教程)来了解扩展类与实现接口的含义。
  • 看来您是Java 新手(因为您不知道thissuper 关键字是什么)。我不认为您现在可以直接进行并发和多线程编程。一定要精通Java,一定要了解核心语言为并发提供的特性,然后开始编写线程。

标签: java multithreading sockets connection


【解决方案1】:

您可能需要先查看thissuper 的Java 文档。

更新: 根据您的 cmets,它看起来像是在调用构造函数。

this(/*args*/)

通常可以用来调用对象的替代构造函数。与

相同
super(/*args*/)

【讨论】:

  • 这不是答案;应该是评论。
  • 我在引用变量时理解这一点。您引用对象,而不是对象的值,然后您可以随意使用它,但我不明白他们在使用该方法时在做什么。行 this(0, 0, width, height);
  • @AaronDavis,所以实际上你的问题似乎与线程无关,而是关于在构造函数中使用thissuper。请改写您的帖子并添加适当的标题。如果您发布带有误导性标题的措辞不清楚的问题,这将无济于事。
  • @AaronDavis,this(0, 0, width, height) 行调用了同一类的另一个构造函数,该构造函数有 4 个参数(代码示例中的最后一个)。
  • @Aaron 看来您对该主题有很多问题,找到一个可能比 SO 更能帮助您理解的资源可能会有所帮助。但是,要回答您的最后一个问题,如果我有一个属性和一个名为 x 的局部变量,this.x 将引用该属性,而只有 x 将引用局部变量。立即使用这种表示法可能有助于防止这种冲突。
猜你喜欢
  • 2011-04-30
  • 2012-04-15
  • 1970-01-01
  • 2013-11-17
  • 2017-12-15
  • 2018-05-06
  • 2018-04-26
  • 1970-01-01
  • 2016-10-29
相关资源
最近更新 更多