我有一个类称为日期:如何从另一个班级获得私人领域?
public class Date{
private String monthAndDate;
public Date(String inputMonthAndDate){
monthAndDate = inputMonthAndDate;
}
}
我叫病人另一个类。是否有可能从Date类中获取monthAndDate的语法并将其传递给类Patient中的私有字段?
谢谢。
我有一个类称为日期:如何从另一个班级获得私人领域?
public class Date{
private String monthAndDate;
public Date(String inputMonthAndDate){
monthAndDate = inputMonthAndDate;
}
}
我叫病人另一个类。是否有可能从Date类中获取monthAndDate的语法并将其传递给类Patient中的私有字段?
谢谢。
注意:您应该避免命名具有标准JDK使用名称的类。
要回答你的问题,你可以简单地在你的日期类提供一个getter:
public class Date{
private String monthAndDate;
public Date(String inputMonthAndDate){
monthAndDate = inputMonthAndDate;
}
public String getMonthAndDate(){
return monthAndDate;
}
}
现在,您可以拨打:
String s = someDate.getMonthDate();
无需为您的Date
类添加吸气剂。这是点的一部分,使字段私有。
是啊......我只是困惑。对不起,问这个问题。 :P –
您试图违反数据封装概念。 private
字段/方法只能在本地在类中访问,并且不会被其他类使用。
添加访问器方法,例如getMonthAndadte()
返回Date
类中的monthAndDate
值。
您可以轻松地反射做到这一点,但是这将只有在Date
不受您的控制,没有合法的API来执行此操作,并且您在考虑到所有后果后绝对必须采取措施的情况下才能推荐。
访问您的私人领域示例场景是这样的代码中:
public class Date
{
private String monthAndDate;
public Date(String inputMonthAndDate)
{
monthAndDate = inputMonthAndDate;
}
public String getMonthAndDate()
{
return monthAndDate;
}
}
public class Parent
{
private yetAnotherField;
Parent()
{
this.yetAnotherField = (new Date("some string")).getMonthAndDate();
}
}
不与private
但你有没有考虑使用“包私人”?如果某些东西是“私人包装”,那么它只能被同一包装中的其他类所看到。令人困惑的是它没有关键字......这是默认范围。
你可以使用Reflection,但提供一个getter方法将是更好的解决方案。
如果你想从另一个类访问它们,你为什么让他们私人摆在首位? – NullUserException