java中的private到底有什么用

java中的private到底有什么用,我怎么觉得写程序时用不用private都一样啊,到底在那些程序中需要用到private

private直接翻译过来为私有的,但在Java中它的含义并不是私有的。而是本类中可用的,表面上是说只有本类中可以使用(更改)该变量或者方法。

但他还有一个含义为:只要在我这个类的范围内部(括号内)即可使用,他不关心使用者是谁,是他自己或者别的类中的实例(例如通过this使用)。只要你在我的类里面用就行了。所以private应该理解为本类中可使用的,而非是本类私有的。

将属性和方法用private封装后表示,被封装的属性与方法只能在本类中使用,类外部不可见。

此时要想访问被封装的属性,必须提供getter与setter方法

setter方法:主要进行属性内容的设置与修改

getter方法:主要进行属性内容的取得

类的设计原则: 编写类的时候,没有额外说明,所有属性必须使用private封装(成员变量)

private不能用于外部类的封装,但是可以用于内部类的封装

扩展资料

Private 变量只能在包含其声明的模块中使用。可以使用 Private 语句声明变量的数据类型。例如,下面的语句声明了一个 Integer 类型的变量:“Private NumberOfEmployees As Integer” 也可以使用 Private 语句来声明变量的对象类型。

实例声明一个变量,Private X As New Worksheet如果在定义对象变量时没有使用 New 关键字,则在使用该变量之前,必须使用 Set 语句将一个已有的对象赋给该引用对象的变量。

在赋值之前,所声明的这个对象变量有一个特定值 Nothing,这个值表示该变量没有指向任何对象的实例。可以用带空圆括号的 Private 语句来声明动态数组,然后可以在过程内用 ReDim 语句来定义该数组的维数和元素。

如果试图在 Private,Public 或 Dim 语句中重新定义一个已显式定义了大小的数组的维数,就会发生错误。当初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (""),而定长的字符串则用 0 填充。

Variant 变量被初始化为 Empty,用户自定义类型的变量的每个元素作为各自独立的变量进行初始化。注意 当在过程中使用 Private 语句时,通常将 Private 语句放在过程的开始。

参考资料:百度百科 - Private (编程语句)

百度百科 - Java (计算机编程语言)



温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-06

private是访问控制修饰符,用来使用访问控制符来保护对类、变量、方法和构造方法的访问。

在程序中需要隐藏类的实现细节和保护类的数据时,就要使用private来修饰。例如:

public class Logger {
 

private String format; 

public String getFormat() {
     return this.format;   }
 

public void setFormat(String format) {
     this.format = format;   }

}

实例中,Logger 类中的 format 变量为私有变量,所以其他类不能直接得到和设置该变量的值。为了使其他类能够操作该变量,定义了两个 public 方法:getFormat() (返回 format的值)和 setFormat(String)(设置 format 的值)。


扩展资料

1、private的访问控制:

当前类:可见

同一包内:不可见

子孙类(同一包):不可见

子孙类(不同包):不可见

其他包:不可见

2、private的使用对象:变量、方法;不能修饰类(外部类)。

本回答被网友采纳
第2个回答  推荐于2019-08-24

private直接翻译过来为私有的,但在Java中它的含义并不是私有的。而是本类中可用的,表面上是说只有本类中可以使用(更改)该变量或者方法。

但他还有一个含义为:只要在我这个类的范围内部(括号内)即可使用,他不关心使用者是谁,是他自己或者别的类中的实例(例如通过this使用)。只要你在我的类里面用就行了。所以private应该理解为本类中可使用的,而非是本类私有的。

将属性和方法用private封装后表示,被封装的属性与方法只能在本类中使用,类外部不可见。

此时要想访问被封装的属性,必须提供getter与setter方法

setter方法:主要进行属性内容的设置与修改

getter方法:主要进行属性内容的取得

类的设计原则: 编写类的时候,没有额外说明,所有属性必须使用private封装(成员变量)

private不能用于外部类的封装,但是可以用于内部类的封装

还有一个更加显著的例子则在于子类对父类private的变量和方法的继承。子类会继承所有父类的方法而非只继承对子类公开的方法。只是在子类中无法直接去使用,要去间接地通过getter和setter来使用罢了。

扩展资料:

编程工具:

Eclipse:一个开放源代码的、基于Java的可扩展开发平台。

NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。

IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。

MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境。

EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序。

本回答被网友采纳
第3个回答  2008-04-28
楼主这样和你说吧比如我有个个人信息类,把密码写成praviate String password;
我在类中只有两个方法让类外用public void set(),和public String get()方法来得到这个密码,而且我在set中调用了md5(字符加密方法来set这个密码,比如密码是123我可以把它转换为别人看不懂的32位字符),get(md5的解码方法)方法来解码,这样我保存再数据库的字符就是别人看不懂的密码,保护了客户信息,这样你只能用get()方法来得到这个解码过的密码,而真正的密码确实谁都看不懂的32位码,如果密码是public 那么只要new 这个类就可以得到这个被加过密的真正密码,这是一个很恐怖的事,你的加密的
规则就会被知道,用户密码就非常容易泄露。其他资源也是一样,不知道楼主有没有明白点了。
_____________________________________________________

private是只能自己类访问的,不然的话其它的程序都可以肆意更改private变量了,可以增加安全性能。
比如说一个个人存款的javabean,private double myaount(银行存款变量),那么这个变量对于其它类是不可见的,如果你要调用的时候只能用这个类的get方法来得到(你也可以不写get方法),这样就约束了人为的,或者意外的其它不安全的访问更改这个变量的因素。(如果访问这个属性的途径太多那么造成的安全隐患是显而易见的)所以一般就把类封装起来只留下
public double getMyaount()的方法来得到这个变量。public void setMyaount()方法来设置这个变量
第4个回答  推荐于2017-09-04
这是一个很古老的问题,记得我在进行面向对象的入门时曾向对此概念不是很清晰的同学解释过
不知楼主对结构有没有概念?(在此假设有)(当然了我的这一段文字的用意除了与楼主讨论外
也和其他朋友讨论)
1.写一个结构,给它起一个名字,在其内定义若干项数据
2.然后创建它的一个实例
3.可以通过先前创建的实例的名字.结构中某一项数据的名字 可以通过这样的一种方式来获得
或者改变这项数据
这第三步在C语言或VB中行得通,但在JAVA中却行不通了
在JAVA中
public class classOne
{
private int dataone;
private String datatwo;
...
private 自定义类型 datan;
}
classOne obj=new classOne();
obj.dataone=5;
具体说是这样就行不通了
在JAVA中通过对象点数据的方式行不通
因为数据是私有的,也就是在数据的前面加上了private 当然也可不定义为私有,但一般都是私有的(原因后面说)
所以就不能通过对象点的方式访问数据
现在来说说为什么要把数据定义为私有
把数据定义为私有通过公有方法来访问数据,这是一个规范
我们必须把数据定义为私有,因为我们必须要遵守规范!
我原来是玩.net的,后来改玩JAVA,很大的一个感触就是JAVA对.net要有规范
一个东西,在.net中很不经意,在JAVA中确有专门的名称,在.net中可以瞎编,完全不讲规范(虽然不提倡,但是确是可以的)
在JAVA中非但很困难甚至可以说不行.对此我很很深的感触.
所以在JAVA中编程是要讲规范了。除此之外用人的企业只怕也要讲规范.......
所以就让我们一起来遵守规范,从第一个在数据前面加上private,通过公有方法来访问数据开始吧!!!!本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网