对于访问父类的变量我们到底应该如何做??
1. 直接访问通过方法访问父类的变量:
- package com.huawei.test
- public class ProtectedVariable extends Parent{
- public static void main(String[] args) {
- Parent v1 = new ProtectedVariable();
- v1.setName("keke8614");
- System.out.println(v1.getName());
- Parent v2 = new ProtectedVariable();
- v2.setName("keke8615");
- System.out.println(v2.getName());
- System.out.println(v1.getName());
- }
- }
- class Parent{
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
package com.huawei.test
public class ProtectedVariable extends Parent{
public static void main(String[] args) {
Parent v1 = new ProtectedVariable();
v1.setName("keke8614");
System.out.println(v1.getName());
Parent v2 = new ProtectedVariable();
v2.setName("keke8615");
System.out.println(v2.getName());
System.out.println(v1.getName());
}
}
class Parent{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2. 第二种方法通过继承访问父类的变量:
- package com.huawei.test;
- public class ProtectedVariable extends Parent{
- public static void main(String[] args) {
- Parent v1 = new ProtectedVariable();
- v1.name = "keke8614";
- System.out.println(v1.name);
- Parent v2 = new ProtectedVariable();
- v2.name = "keke8615";
- System.out.println(v1.name);
- System.out.println(v2.name);
- }
- }
- class Parent{
- protected String name;
- }
package com.huawei.test;
public class ProtectedVariable extends Parent{
public static void main(String[] args) {
Parent v1 = new ProtectedVariable();
v1.name = "keke8614";
System.out.println(v1.name);
Parent v2 = new ProtectedVariable();
v2.name = "keke8615";
System.out.println(v1.name);
System.out.println(v2.name);
}
}
class Parent{
protected String name;
}
通过上面的方法我们都可以访问到变量,那么到底哪种访问符合便准的编程规范呢,我很是疑惑?
这是我在看一些源码中时发现的。而源码中更多的是以下的编码格式
- package com.huawei.test;
- public class ProtectedVariable extends Parent{
- public static void main(String[] args) {
- Parent v1 = new ProtectedVariable();
- v1.setName("keke8614");
- System.out.println(v1.getName());
- Parent v2 = new ProtectedVariable();
- v2.setName("keke8615");
- System.out.println(v2.getName());
- System.out.println(v1.getName());
- }
- }
- class Parent{
- protected String name;
- public String getName() {
- //可能对name进行操作
- return name;
- }
- public void setName(String name) {
- //可能对name进行操作
- this.name = name;
- }
- }
package com.huawei.test;
public class ProtectedVariable extends Parent{
public static void main(String[] args) {
Parent v1 = new ProtectedVariable();
v1.setName("keke8614");
System.out.println(v1.getName());
Parent v2 = new ProtectedVariable();
v2.setName("keke8615");
System.out.println(v2.getName());
System.out.println(v1.getName());
}
}
class Parent{
protected String name;
public String getName() {
//可能对name进行操作
return name;
}
public void setName(String name) {
//可能对name进行操作
this.name = name;
}
}
这样设计到底起到了什么好处啊??希望给予正解......
本文探讨了两种访问父类变量的方法:通过方法访问和直接访问,并分析了这两种方法的优劣。推荐使用通过方法访问的方式,因为它可以提供更好的封装性和安全性。



971

被折叠的 条评论
为什么被折叠?



