黑马程序员技术交流社区

标题: 方法私有化问题 [打印本页]

作者: 沙子    时间: 2014-12-17 19:36
标题: 方法私有化问题
问题5:父类的成员变量私有化之后,子类依然继承,但不能直接访问,那么该如何访问?
作者: 清诗纪事    时间: 2014-12-17 19:57
定义方法
private String name;
public void getName(String name){

this.name=name;
}
this指的是调用的那个对象。new一个对象之后调用getName方法就可以访问
作者: duluhua    时间: 2014-12-17 20:12
对于私有的成员变量,一般都是使用public的get和set方法来进行访问。
父类:
package test;

public class Test {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
子类:
package test;

public class Test2 extends Test {
    public static void main(String[] args) {
        Test2 t = new Test2();
        t.setName("aaa");
        System.out.println(t.getName());
    }
}

对于父类私有的成员不能在父类外访问,但是可以使用父类的共有方法来访问。就是get和set
作者: qig123    时间: 2014-12-17 22:02
如果该成员变量需要共享,那么可以定义为静态变量,直接用类名访问
如果是普通成员变量,那就写个get方法,set方法访问。
实际上,一但被定义为私有成员变量,就一定要有public修饰的成员方法来访问,这是设计一个类的基本原则规范。

作者: Honelyboy    时间: 2014-12-17 22:10
那就在父类中定义函数去访问父类的成员变量。
作者: jxlovqqvo    时间: 2014-12-17 22:12
父类的私有,子类就算继承了也没用,打个比方:你爸把他的财产能继承给你,他能把他的知识继承给你么,肯定不行啊
作者: I空空    时间: 2014-12-18 00:20
写一个public的调用该成员变量的方法即可,参考单例模式
作者: 天才小熊猫    时间: 2014-12-18 18:05
this and base
作者: 董晗    时间: 2014-12-18 18:23
6楼回复亮了
作者: I空空    时间: 2014-12-19 23:01
写个public方法
作者: 7788665544    时间: 2014-12-19 23:30
定义一个public方法,通过这个方法再来调用
作者: 严晗哲    时间: 2014-12-19 23:31
要访问父类的私有化成员,只能通过父类提供的方法访问,如果没有提供方法就无法访问。
作者: 找寻小龙猫    时间: 2014-12-19 23:32
六楼好精辟,……





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2