【问题标题】:Basic Java OOP Questions on variable declaration and access关于变量声明和访问的基本 Java OOP 问题
【发布时间】:2011-05-26 06:55:30
【问题描述】:

如果我有一个类 Person,它有两个实例变量:name 类型为 Stringfriend 类型为 Person,我如何向 Person 添加一个方法,让我可以访问属于Person 实例的朋友的name

此外,在 Java 中更一般地可以:

  • 局部变量可以声明私有吗?
  • 可以将形参声明为final?
  • 声明对象会自动为其分配空间吗?

【问题讨论】:

  • 明显的作业。试着问问你的助教。
  • 您会认为找到 SO 并输入所有内容比查找答案更费力吗?

标签: java oop


【解决方案1】:

问题 1:
老实说,这是最基本的面向对象的实用问题。如果你不明白,你需要去找人谈谈。

判断对错:局部变量可以声明为私有的。
局部变量永远不能被外部代码访问;将它们声明为私有是没有意义的。

判断对错:可以将形参声明为最终参数。
True - 这意味着该方法无法在本地重新分配参数。
/* 根据下面的评论编辑 */

判断对错:声明一个对象(例如,Person p;)会为该对象分配空间
java中的对象都是引用。当您声明一个对象时,它会分配一个不特别引用任何内容的引用。当您稍后分配对象时,它会将该引用设置为指向存储该对象的已分配内存部分。

【讨论】:

  • 谢谢山姆,非常感谢您的回复,并会听从您的建议
  • -1 您声明final 关键字意味着该方法不会修改传入的对象的内容。这不是真的。编译器或 JVM 不会监视对象的可变性或不变性。 final 关键字仅仅意味着该方法不能将不同的对象重新分配给相同的参数引用。确实没有理由这样做,因为更改不会反映在方法范围之外,因此最佳做法是将每个参数设为最终 (IMO)。
  • 很抱歉 - 从语义上讲,我想的更多,而不是 JVM 强制执行的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多