Java中的默认访问修饰符是什么?

这个问题在这里已有答案:

什么是默认访问修饰符?                                     12个答案

如果我没有明确说明方法或实例变量的默认访问修饰符是什么?

例如:

package flight.booking;

public class FlightLog

{

private SpecificFlight flight;

FlightLog(SpecificFlight flight)

{

this.flight = flight;

}

}

此构造函数的访问修饰符是受保护的还是包的? 同一个包中的其他类,也就是flight.booking,可以调用这个构造函数吗?

13个解决方案

101 votes

来自Java文档

如果一个类没有修饰符(默认,也称为包私有),它只在自己的包中可见(包是相关类的命名组 - 您将在后面的课程中了解它们。)

在member level,您也可以使用public修饰符或no modifier(package-private),就像使用顶级类一样,具有相同的含义。

你可以在这里阅读全文(我最近写的):

[http://codeinventions.blogspot.com/2014/09/default-access-modifier-in-java-or-no.html]

Suresh Atta answered 2019-07-07T15:32:56Z

78 votes

来自文档:

Access Levels

Modifier Class Package Subclass World

-----------------------------------------------------

public Y Y Y Y

protected Y Y Y N

(Default) Y Y N N

private Y N N N

Pradeep answered 2019-07-07T15:33:20Z

30 votes

这取决于具体情况。

当它在一个班级中时:

class example1 {

int a = 10; // This is package-private (visible within package)

void method1() // This is package-private as well.

{

-----

}

}

当它在界面内时:

interface example2 {

int b = 10; // This is public and static.

void method2(); // This is public and abstract

}

SKG answered 2019-07-07T15:34:15Z

20 votes

默认访问修饰符是package-private - 仅在同一个包中可见

Evgeniy Dorofeev answered 2019-07-07T15:34:50Z

10 votes

下面是一个代码示例,它应该为您总结一下......除了以下内容,显示如何访问另一个包中的默认值还有一件事。

如果子类的子类在另一个包中,则子类中不能访问默认值,但如果子类位于同一个包中,则可以访问它。

package main;

public class ClassA {

private int privateVar;

public int publicVar;

int defaultVar;

}

package main;

public class ClassB {

public static void main(String[] args) {

ClassA a = new ClassA();

int v1 = a.publicVar; // Works

int v2 = a.defaultVar; // Works

int v3 = a.privateVar; // Doesn't work

}

}

package other;

public class ClassC {

public static void main(String[] args) {

ClassA a = new ClassA();

int v1 = a.publicVar; // Works

int v2 = a.defaultVar; // Doesn't work

int v3 = a.privateVar; // Doesn't work

}

}

JTHouseCat answered 2019-07-07T15:35:43Z

5 votes

默认修饰符为package.只有同一包中的代码才能调用此构造函数。

cahen answered 2019-07-07T15:36:29Z

5 votes

是的,它在同一个包装中可见。 该包之外的任何内容都不允许访问它。

Maninder Singh answered 2019-07-07T15:36:58Z

2 votes

您的构造函数的访问修饰符将是包私有(默认)。 正如您已将该类声明为public,它将随处可见,但构造函数不会。 您的构造函数仅在其包中可见。

package flight.booking;

public class FlightLog // Public access modifier

{

private SpecificFlight flight;

FlightLog(SpecificFlight flight) // Default access modifier

{

this.flight = flight;

}

}

如果不在类中编写任何构造函数,则编译器会生成一个默认构造函数,该构造函数具有该类的相同访问修饰符。 对于以下示例,编译器将生成具有公共访问修饰符的默认构造函数(与类相同)。

package flight.booking;

public class FlightLog // Public access modifier

{

private SpecificFlight flight;

}

Sachin Gorade answered 2019-07-07T15:37:56Z

1 votes

默认访问修饰符是包私有(即DEFAULT),它只能从同一个包中看到。

Piyush Bhardwaj answered 2019-07-07T15:38:28Z

1 votes

默认访问修饰符 - 如果类没有修饰符(默认值,也称为包私有),则只在其自己的包中可见(包是相关类的命名组)。

Atiq answered 2019-07-07T15:39:02Z

1 votes

不,您无法调用其他软件包的默认访问级别。 但是您可以在包中访问。 请点击此链接了解更多详情。

Hariprasath answered 2019-07-07T15:40:17Z

0 votes

此构造函数的访问修饰符是受保护的还是包的?

我认为你的构造函数访问修饰符隐含地是你的类的访问修饰符。 由于您的类具有公共访问权限,因此构造函数将隐式具有公共访问权限

PermGenError answered 2019-07-07T15:41:09Z

0 votes

从一本名为OCA Java SE 7 Programmer I的书中:

在不使用任何显式访问的情况下定义的类的成员   修饰符是使用包可访问性定义的(也称为默认值)  辅助功能)。 具有包访问权限的成员只能访问   在同一个包中定义的类和接口。

BERGUIGA Mohamed Amine answered 2019-07-07T15:42:03Z

java 修饰符默认_Java中的默认访问修饰符是什么?相关推荐

  1. java中访问修饰符_Java中的非访问修饰符是什么?

    java中访问修饰符 Java非访问修饰符 (Java non access modifiers) We have 7 non-access modifiers in Java. The name o ...

  2. java中有哪些访问修饰符_java中四种访问修饰符

    Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量) public protected def ...

  3. java socket超时时间_java中socket 默认超时时间 | 学步园

    MS:永远吧 Java代码 connect publicvoidconnect(SocketAddress endpoint, inttimeout) throwsIOException Connec ...

  4. Java基础:Java中四种访问修饰符

    一.背景. 这篇文章主要介绍了Java中四种访问修饰符详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下.放假在家里休息,闲来无事,想 ...

  5. java 权限修饰符大小_Java中访问权限修饰符public protected private, 缺省默认权限的用法总结...

    1.访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说: 也是一样. (2)friendly: 对于成员老说:如果一个类的成员没 ...

  6. Java中四个访问修饰符public private protected 和默认(package-private)的用法详解

    访问级别 访问级别修饰符确定其他类是否可以使用特定字段或调用特定方法.有两个级别的访问控制: 1.在顶级 public或package-private(没有显式修饰符即默认权限). 类可以用修饰符pu ...

  7. java数组最大值索引_java中的权限修饰符有哪些?怎么获取数组最大值?

    java作为一门编程语言,由于它的优秀,现在已经成为很多人的首选编程语言.java中关于修饰符和数组的知识点也是十分多的,今天就来为大家介绍一下,java中的权限修饰符有哪些?怎么获取数组最大值?一起 ...

  8. java 权限修饰符_java中4种访问权限修饰符

    在Java编程语言中有四种权限访问控制符,这四种访问权限的控制符能够控制类中成员的可见性. 一.public (1) 定义:public是公共的,被public所修饰的成员可以在任何类中都能被访问到. ...

  9. java中缺省包_Java 中的默认包问题

    起因 今天看< Java 编程思想>第六章的时候看到这样一句话: 一定要记住,相同目录下的所有不具有明确 package 声明的文件,都被视作是该目录下默认包的一部分. 以前没有深入了解过 ...

最新文章

  1. hp-ux 单用户 启动_UX备忘单:搜索与浏览
  2. spring使用注解@Scheduled执行定时任务
  3. VS Studio报错无法解析的外部符号 _imp_XXXXXXXXX
  4. python线程安全的计数器_Python多线程同步Lock、RLock、Semaphore、Event实例
  5. 网线重新插拔后恢复正常_生活小窍门之网线不够长怎么办,毕亚兹网线连接器轻松搞定...
  6. SpringBoot-Mail 发邮件(单发、群发、加附件、HTML格式)
  7. Win11高效日历推荐
  8. 搭建一个简单Git服务器
  9. 系统发育树的美化~Figtree(图文教程)
  10. android开启wifi热点命令,Win7共享WIFI热点让Android手机上网
  11. 自增 ID 用完了怎么办 ?
  12. 服务器配置443端口报错
  13. 计算机思维培训心得,计算机教师培训心得体会
  14. revit 对计算机最低配置,Revit2016官方推荐电脑配置要求
  15. java模拟器环境_Win10 + Appium+夜神/MuMu模拟器环境搭建
  16. 基于猫眼票房数据的可视化分析
  17. 这么简单,抄抄,改改就行啦
  18. 与心血管疾病相关的肠道菌群代谢产物或毒素
  19. 【Android】 android | as | android studio 安装与使用
  20. as死机了怎么办_电脑老是莫名其妙地死机,怎么办?

热门文章

  1. python 中值滤波,椒盐去噪,图片增强
  2. 第一篇:坚持做难而正确的事情
  3. 计算机网绣维修,电脑绣花机常见的故障和维修都有哪些呢?
  4. APP软件项目开发流程
  5. 我是唱作人2的mv下载方法步骤
  6. 3Q诉讼案开庭 腾讯称360诉讼书矛盾百出
  7. 5G时代,技术人员为何要懂网络编程?
  8. 共享汽车倒闭大讨债:打砸办公室、围堵创始人...途歌的1500元你退了吗?
  9. 频域滤波matlab代码_频域的弦,时域的箭(1)
  10. STM32F407ZGT6+PWM控制步进电机三档速率+温感ds18b20、光感+光电开关