在java中能用private修饰类吗?

在java中能用private修饰类吗?,第1张

一般的类是不能用private修饰,类的可见性最少是包可见的,也就是默认的,不加任何修饰。

但是有一种特殊的情况,内部类是可以用private修饰的!不让类以外的其他类访问!这个问题在《java核心技术》里有讲!

Java的外部类为什么不能使用private、protected进行修饰?

对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。

因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。

如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(protected),任何位置(public)。

当一个内部类使用了private修饰后,只能在该类的外部类内部使用。可以想一下,一个java项目是不可能在一个class里面完成的。

mvc模式中,是把类分为三层,一层层调用类。如果定义为私有的和受保护的就无法调用。换句话说,对于一个java文件,要么就是自己单独运行,要么就是被其他程序作为库调用。

如果一个java文件的类被private修饰,那么是不是其他的程序或是类是无法使用它的,那么他作为一个单独的文件就没啥用了。

如果它作为单个文件运行,类加载怎么找到它呢,因为它对外不可见。同时,也失去了类的存在意义。因此,类只有public和默认修饰符。

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简介:是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,

Java特点:Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。

可编写的程序:Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11200661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存