Java中private,默认,protected,public修饰符的区别:private只能在本类内部使用,默认只能在同一包中使用,protected除了同一包中还能被子类使用,public具有最大的访问权限,在整个应用程序中都可以使用。
一、Java中private,默认,protected,public修饰符的区别
- private:private的访问权限仅限于类的内部,是一种封装的体现,例如,大多数的成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。
- default :默认(缺省)表示本包内可以使用,它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。
- protected:当前类或子类可以访问,同时相同包内的其他类也可以访问protected成员;它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。
- public:具有最大的访问权限,可以访问任何一个在CLASS PATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。
二、Java四种权限修饰符简介
1、public (公共权限)
- 修饰对象: 修饰类、方法、属性
- 继承: 被public所修饰的成员能被该类的所有子类继承下来。
- 作用域: 可以被任意类访问
public能用来修饰类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件名就必须要和这个被public所修饰的类的类名相同,否则编译不能通过。说到这里,穿插多一点知识。一个类作为外部类的时候只能被public或者默认访问修饰符所修饰,但是一个类如果作为内部类的时候,则可以被四种访问修饰符所修饰,因为一个类作为内部类的时候,就作为外部类的一个成员属性了,因此可以有四种访问修饰符修饰,这是内部类和外部类的一个区别。
public用来修饰类中成员(变量和方法),被public所修饰的成员可以在任何类中都能被访问到。通过操作该类的对象能随意访问public成员。public在类的继承上的体现,被public所修饰的成员能被所有的子类继承下来。
2、protected(受保护的权限)
- 修饰对象:修饰内部类,接口,属性,方法。
- 继承: 被protected所修饰的成员能被该类的所有子类继承下来。
- 作用域: 可以被同包类访问,如果不是同包,必须是该类的子类才能访问
3、default (同包权限)
- 修饰对象:修饰类,属性,方法。
- 继承:被default所修饰的成员只能被该类所在同一个package中的子类所继承下来。(也就是说只有在同一个package中的子类才能访问到父类中default修饰的成员)
- 作用域: 只能被同包的类访问
4、 private (私有权限)
- 修饰对象 : 内部类,属性,方法。
- 作用域: 只能在本类中使用。
三、JAVA简介
1、什么是Java
Java是一种通用的,基于类的,面向对象的编程语言。它是用于应用程序开发的计算平台。因此,Java是快速,安全和可靠的。它被广泛用于在笔记本电脑,数据中心,游戏机,科学超级计算机,手机等中开发Java应用程序。Java遵循WORA(Write Once, Run Anywhere。一次写入,到处运行)的原理,并且与平台无关。它也简单易学。
2、Java发展历史
Java是世界上使用较广泛的编程语言之一。Java最初由Sun Microsystems在1990年代开发,用于开发从Web应用程序到移动应用程序到批处理应用程序的所有内容。Java最初是一种纯粹的面向对象的语言,但现在已经发展成为一种多范例语言,可以高度适应任何情况。拥有庞大的开发人员社区和支持库,Java是开发几乎所有类型的应用程序的理想选择。
Java是最初由开发James Gosling(詹姆斯·高斯林,他被称为Java编程语言之父)在Sun Microsystems公司(现已经被Oracle收购),并于1995年发布了作为Sun公司的一个核心组成部分Java平台。
James Gosling(詹姆斯·高斯林),Mike Sheridan(迈克·谢里丹)和Patrick Naughton(帕特里克·诺顿)于1991年6月启动了Java语言项目。Java最初是为交互式电视设计的,但在当时的数字有线电视行业来说太先进了。该语言最初是在James Gosling(詹姆斯·高斯林)办公室外的一棵橡树之后被称为Oak的。后来,该项目以Green命名,并最终从Java coffee(印度尼西亚的一种咖啡)重命名为Java。
3、Java的特点
- 一种面向对象的编程语言:按照对象集合的方式组织程序是一种面向对象的编程思维。面向对象编程的四个主要概念是:抽象化,封装,继承,多态。
- 一种与平台无关的语言:编译器将源代码转换为字节码,然后JVM执行编译器生成的字节码。该字节码可以在Windows,Linux和macOS的任何平台上运行,这意味着如果我们在Windows上编译程序,则可以在Linux上运行,反之亦然。每个操作系统具有不同的JVM,但是在字节码执行后,所有操作系统产生的输出都是相同的。这就是为什么我们称Java为平台无关的语言。
- 简单:Java是简单的语言之一,因为它不具有指针,运算符重载,多重继承,显式内存分配等复杂功能。
- 具有较高的安全性:(自动回收垃圾,强制类型检查,取消指针)在Java中,我们没有指针,因此我们无法访问越界数组,如果尝试这样做,它将显示ArrayIndexOutOfBoundsException。这就是为什么在Java中无法利用堆栈破坏或缓冲区溢出之类的一些安全漏洞的原因。
- 分布式:我们可以使用Java编程语言创建分布式应用程序。远程方法调用和企业Java Bean用于在Java中创建分布式应用程序。Java程序可以轻松地分布在通过Internet连接相互连接的一个或多个系统上。
- 多线程:Java支持多线程。它是Java的一项功能,它允许并发执行程序的两个或更多部分,以最大程度地利用CPU。
- 可移植:众所周知,在一台机器上编写的Java代码可以在另一台机器上运行。Java的平台无关功能,其中可以将其平台无关字节码带到任何平台上执行,从而使Java可移植。
延伸阅读1:Java六种非访问修饰符
- static 修饰符
- abstract 修饰符
- final 修饰符
- synchronized 修饰符
- transient 修饰符
- volatile 修饰符