【问题标题】:While passing an attribute typed class as a parameter to a method, is it possible to access it without setters?在将属性类型类作为参数传递给方法时,是否可以在没有 setter 的情况下访问它?
【发布时间】:2021-04-12 17:33:11
【问题描述】:

例如,假设我有一个基类:

package test;

public class Class1 {
    
    private int attribute1;
    private int attribute2;
    
    public Class1(int att1, int att2) {
        this.attribute1 = att1;
        this.attribute2 = att2;
    }
    
}

那我还有一堂课:

package test;
    
public class Class2 {
        
    private int attribute3;
    Class1 class1;

    public Class2(int att3){
        this.attribute3 = att3;
    }

    public void insert(Class1 class1) {
        //
    }
    
}

在插入方法中,我将作为参数传递 Class1 类型的属性。是否可以在没有设置器的情况下访问 Class1 属性?如果是,我该怎么做?另外:

package test;

public class Class2 {
    
    public static void main(String[] args) {
    
        Class2 c2 = new Class2 ();
        
        c2.insert();
    }

}

我应该如何使用 .insert() 方法?比如,什么参数?我有点困惑,但我的程序应该是这样的。

【问题讨论】:

  • Is it possible to access Class1 attributes without setters? if yes, how do I do it? 是的。将它们公开。
  • 我不能,它们应该是私有的:/

标签: java parameter-passing


【解决方案1】:

是否可以在没有 setter 的情况下访问 Class1 属性?

您的意思当然是“吸气剂”。 setter 设置值,getter 获取值。

答案是:不。这2个属性被标记为private

我应该如何使用 .insert() 方法?

Class1 c1 = new Class1();
Class2 c2 = new Class2();
c2.insert(c1);

【讨论】:

  • 好的,所以我需要 getter,但在 public void insert() 内部我试图更改属性 1 和属性 2 的值,这不是用 getter 完成的吗?
  • 两者都需要。
猜你喜欢
  • 2019-07-30
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
相关资源
最近更新 更多