java - 常见做法是什么?类型放置

标签 java methods types

你愿意吗:

  • 在main方法上面添加类型,然后在方法下面初始化

    public class Main {
        private Person person;
        public void method() {
             person = new Person("Bob", 30);
    
  • 在主方法上方添加类型并初始化它们

    public class Main {
        private Person person = new Person("Bob", 30);
        public static void main(String[] args) {
    
  • 在主方法下添加类型并初始化它们

    public class Main {
        public static void main(String[] args) {
            Person person = new Person("Bob", 30);
    

我想知道您什么时候会使用哪种方式以及为什么。 感谢您的任何意见!

最佳答案

a) 方法内部不允许使用 private 修饰符,因此您的第三个示例甚至无法编译。

b)只有你的第二个例子才能真正编译。第一个有类“Main”的非静态成员,您尝试直接在静态方法中设置它。

c) 示例不相等。第三个在方法中有一个局部变量(假设我们忽略 private 修饰符),另外两个有一个成员变量“Main”。

a&b 与 c 取决于您需要变量的位置。如果您只需要在方法内使用它,请在那里声明它。

a 与 b 主要取决于可读性和用例。如果您可以在那里初始化变量并且不会导致不可读的代码,请执行此操作。否则,请在构造函数或任何 init 方法中执行此操作。

就我个人而言,我倾向于直接声明最终对象,非最终对象可以在其他地方初始化(因为直接声明它们会使其看起来相当最终,即使它们不是)。

关于java - 常见做法是什么?类型放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741606/

相关文章:

java - 我无法解决这个问题 "NullPointerException"

java - 声明实例变量并实现 getter 方法?

java - 图形闪烁

c# - 我如何改进检查当前项目是否已存在于数据库中的方法

php - Yii2/PostgreSQL - 调用未知方法:yii\db\ActiveQuery::formName()

language-agnostic - 是否可以统一继承和参数多态的概念?

java - 你如何比较java中相同泛型类型的两个值?

methods - 什么类型对方法的 `self` 参数有效?

python - 如何测试变量是否包含 lambda?

c# - 转换为 C# 中的反射类型