java中的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是访问控制修饰符,用来使用访问控制符来保护对类、变量、方法和构造方法的访问。
在程序中需要隐藏类的实现细节和保护类的数据时,就要使用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的使用对象:变量、方法;不能修饰类(外部类)。
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程序。
我在类中只有两个方法让类外用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()方法来设置这个变量
不知楼主对结构有没有概念?(在此假设有)(当然了我的这一段文字的用意除了与楼主讨论外
也和其他朋友讨论)
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,通过公有方法来访问数据开始吧!!!!