从构造函数中提取信息

时间:2015-12-12 22:35:07

标签: java

如果我在一个类中创建一个带有构造函数的对象,并且构造函数为对象提供了诸如' name'之类的属性,那么有没有办法专门访问String' name'来自另一个班级?如果我有一个方法可以将对象传递给,并且该方法只需要访问String' name'从构造函数中,我该如何实现它?

这可能是一个已经有答案的糟糕问题,但由于我不知道搜索它的正确术语,我有点卡住......

2 个答案:

答案 0 :(得分:1)

除非该参数存储在类的字段中,否则无法从构造函数定义外部读取传递给构造函数的参数。当然,如果您创建类MyClass myObject = new MyClass("Some String");之类的实例,则可以在创建该对象的代码范围内访问某些字符串。

类的字段(例如来自实例fieldName的字段myObject和类MyClass可以被另一个类访问的方式是:

  • 如果该字段是公开的,请myObject.fieldName
  • 访问
  • 如果该字段受到保护,请通过继承MyClass
  • 来访问该字段
  • 如果MyClass有字段的getter:myObject.getFieldName()
  • 如果该字段是私有的且没有getFieldName()方法,则无法从该类外部访问该字段。

答案 1 :(得分:0)

以下是一些我认为可以展示您想要做的课程。 我有一个具有名称字段的Person类和一个名为sayHello的方法的Friend类,它访问Person的name属性。

public class Main
{
    private static class Friend
    {
        public void sayHello(Person person)
        {
            System.out.println("Hello " + person.getName());
        }
    }

    private static class Person
    {
        private String name;

        public Person(String name)
        {
            this.name = name;
        }

        public String getName()
        {
            return name;
        }
    }   

    public static void main(String[] args)
    {
        Person person = new Person("John Smith");
        Friend friend = new Friend();
        friend.sayHello(person);
    }
}
相关问题