2015-12-12 90 views
-1

如果我在一个类中创建一个具有构造函数的对象,并且构造函数为该对象提供了像'name'这样的属性,是否有方法从另一个类中专门访问String'name'?就像在中,如果我有一个方法将对象传递给该方法,并且该方法需要从构造方法中访问字符串'name',那么我该如何解决它?从构造函数中提取信息

这可能是一个坏的问题已经有答案,但因为我不知道正确的术语来搜索它我有点卡住了...

+0

您可以为您的类添加一个getter,以便使用代码可以访问该对象内的该值。这与构造函数无关。 – David

+0

是的,就像@大卫说的。你知道getter和setter方法吗? (我也不是一个自作聪明顺便说一句)。 – Mike

+0

@大卫好吧,所以没有办法只通过传递对象的方法来获得它? – user13948

回答

1

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

一个类的领域,从一个实例myObject说现场fieldName的方式的一类MyClass可以被另一个类访问是:

  • 如果场是公开的,通过myObject.fieldName
  • 访问
  • 如果该字段是受保护的,通过继承MyClass
  • 访问它如果MyClass有该领域的吸气剂:myObject.getFieldName()
  • 如果在F该领域是私人的,并没有getFieldName()方法,那么它不能从课外访问。
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); 
    } 
}