如题所述
大家的专业解答得都很清楚了,我来讲讲稍微深层一点的原因,其实public private protect 等修饰符的出现,是为了解决过程性语言(如C语言)的一些问题。
在C语言中,当几个方法要对一个数据进行操作,必须把这个数据定义为全局变量。然后,坏处就来了,任何方法都可以调用它,对这些变量进行使用、修改等等操作。这就会造成程序的内部组织混乱,如果是大型程序,直接就崩溃了。
所以,java出来拯救世界了,面向对象的程序设计思想更符合人类的思维。就是说,抽象的程序更加贴近现实的世界。。。举个例子...
好比人类People,就是类class, 你new实例一个就是一个全新的人。人有属性,name、age、gender、等等。你用private、protect修饰了,就是说,人类(People类)才有这些属性。一根木头有这些属性吗,木有类能使用这些属性吗?当然不能。只能这个类People才有权限去定义和使用这些属性,所以,修饰符是这样来的。
还有..
人类People有行为,-->那对应的就是方法Method了,你希望人类去做什么,就定义什么样的方法...
最后说一句...
你要深刻理解面向对象的概念,你就会明白一些概念,比如为什么使用修饰符,为什么要new,为什么继承,为什么实现接口?等等这些问题就会迎刃而解。
我不会告诉你怎么深刻理解面向对象...
第一:全方面对比C语言....可以看看《数据结构与算法》
第二:思维投射到现实世界中...,绝大部分问题,都能从现实世界中找到影子....其实我们设计程序也是服务现实的生活..
...
问题过去这么久了,为什么我还来答?
我只是训练我的表达能力....想得明白不一定表达得明白对不对,表达明白别人也不一定听的明白对不对... 明白请得点个赞....
总要有一句高逼格的话作为结尾对不对...
编程--->势要把世界写个明明白白...嘿嘿..
在C语言中,当几个方法要对一个数据进行操作,必须把这个数据定义为全局变量。然后,坏处就来了,任何方法都可以调用它,对这些变量进行使用、修改等等操作。这就会造成程序的内部组织混乱,如果是大型程序,直接就崩溃了。
所以,java出来拯救世界了,面向对象的程序设计思想更符合人类的思维。就是说,抽象的程序更加贴近现实的世界。。。举个例子...
好比人类People,就是类class, 你new实例一个就是一个全新的人。人有属性,name、age、gender、等等。你用private、protect修饰了,就是说,人类(People类)才有这些属性。一根木头有这些属性吗,木有类能使用这些属性吗?当然不能。只能这个类People才有权限去定义和使用这些属性,所以,修饰符是这样来的。
还有..
人类People有行为,-->那对应的就是方法Method了,你希望人类去做什么,就定义什么样的方法...
最后说一句...
你要深刻理解面向对象的概念,你就会明白一些概念,比如为什么使用修饰符,为什么要new,为什么继承,为什么实现接口?等等这些问题就会迎刃而解。
我不会告诉你怎么深刻理解面向对象...
第一:全方面对比C语言....可以看看《数据结构与算法》
第二:思维投射到现实世界中...,绝大部分问题,都能从现实世界中找到影子....其实我们设计程序也是服务现实的生活..
...
问题过去这么久了,为什么我还来答?
我只是训练我的表达能力....想得明白不一定表达得明白对不对,表达明白别人也不一定听的明白对不对... 明白请得点个赞....
总要有一句高逼格的话作为结尾对不对...
编程--->势要把世界写个明明白白...嘿嘿..
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-07-16
private可以修饰变量、构造器,方法、内部类;在变量前面加private 表示类的私有属性,只可以在类内部访问使用;当一个属性只希望类内部访问的时候,就使用private。
java中表示范围的修饰符 :public、protected、default、private。
类内部 package内 子类 其他
public 允许 允许 允许 允许
protected 允许 允许 允许 不允许
default 允许 允许 不允许 不允许
private 允许 不允许 不允许 不允许
java中表示范围的修饰符 :public、protected、default、private。
类内部 package内 子类 其他
public 允许 允许 允许 允许
protected 允许 允许 允许 不允许
default 允许 允许 不允许 不允许
private 允许 不允许 不允许 不允许
第2个回答 2014-04-17
当你创建一个类并声明类的成员变量时,为了保护类不被外部直接访问,你就应该使用private修饰符来对类中的属性进行封装(添加get和set方法),这样外部类就无法直接访问此类的对象,只能通过类的get和set方法来访问对象的属性。这其实就是面向对象的三大特征之一。
第3个回答 2014-04-18
一般情况下,你只需要写private 和public 这两种访问控制关键字就可以了(protect暗示着这个方法需要被重写,一般你写的类是不会作为基类的).
我想你是知道private和public的概念的,你可以全部都先声明为private 当有需要的时候再公开.
真心话:javabean属性私有提供共有get/set方法99%的情况下都是自欺欺人的做法.要不是有这个标准鬼才这么干
我想你是知道private和public的概念的,你可以全部都先声明为private 当有需要的时候再公开.
真心话:javabean属性私有提供共有get/set方法99%的情况下都是自欺欺人的做法.要不是有这个标准鬼才这么干
第4个回答 2014-04-17
如果想当前类拥有,不想被其他类访问。追问
能具体点吗?
追答这个要多用才有体会,主要体现在封装性上,比如一个动物类,下面有男人和女人两个子类还有其他狗,猴子之类的,男人和女人都有自己的隐私,于是将隐私的变量定义private(成员方法很少这么做),这样除了男人和女人自己知道自己的隐私,别的动物子类无法获知,当然如果想被获知,可以提供public类型的get方法,将私有变量暴露出去