public、private和static的区别是什么

小编 1307

public,private 和static 的区别是:public定义的是公共变量,可以被整个应用程序使用;private定义的是私有变量,只能在本类中被调用;Static定义的是静态变量,不需要实例化就能被调用,当然也有公有和私有之分。

1.public

public定义的是公共变量,如果在一个模块当中使用,那么整个应用程序都能使用它所定义的变量;如果在类中使用,那么它就是一个共有属性。

2.private

private定义的是私有变量,如果在一个模块中使用,那么只有这个模块才能访问到它所定义的变量;如果在类中使用,那么它就是一个私有属性。

3.static

Static定义的是静态变量,在变量或方法之前,表明它们是属于类的。静态变量在各实例间共享,如果是public静态变量,则其它类可以不通过实例化访问它们。被static修饰的变量和方法类似于全局变量和全局方法,可以在不创建对象时调用,当然也可以在创建对象之后调用。

延伸阅读

Java语言中访问控制修饰符有几种

访问控制在面向对象技术中处于很重要的地位,合理地使用访问控制符,可以通过降低类和类之间的耦合性(关联性)来降低整个项目的复杂度,也便于整个项目的开发和维护。在Java语言中,访问控制修饰符有以下四种:

1.private

用private修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private修饰符具有较高的保护级别。例如,设PhoneCard是电话卡类,电话卡都有密码,因此该类有一个密码域,可以把该类的密码域声明为私有成员。

2.friendly

如果一个类没有访问控制符,说明它具有默认的访问控制特性。这种默认的访问控制权规定,该类只能被同一个包中的类访问和引用,而不能被其他包中的类使用,即使其他包中有该类的子类。这种访问特性又称为包访问性(package private)。

同样,类内的成员如果没有访问控制符,也说明它们具有包访问性,或称为友元(friend)。定义在同一个文件夹中的所有类属于一个包,所以前面的程序要把用户自定义的类放在同一个文件夹中(Java 项目默认的包),以便不加修饰符也能运行。

3.protected

用保护访问控制符protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用protected修饰符的主要作用,是允许其他包中它的子类来访问父类的特定属性和方法,否则可以使用默认访问控制符。

4.public

当一个类被声明为public时,它就具有了被其他包中的类访问的可能性,只要包中的其他类在程序中使用import语句引入public 类,就可以访问和引用这个类。

类中被设定为public的方法是这个类对外的接口部分,避免了程序的其他部分直接去操作类内的数据,实际就是数据封装思想的体现。每个Java程序的主类都必须是public类,也是基于相同的原因。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部