Java—类与类之间的区别;“类名”;和公共类“;“类名”;

Java—类与类之间的区别;“类名”;和公共类“;“类名”;,java,class,Java,Class,两者之间有什么区别 class x { //code here } 及 有时我在网上看到一些例子,它们会有公共类而不是类,它们都是简单的程序。我使用类进行我的作业,其他人也一样第一个类将导致为您的类分配默认可见性,即包专用(即:在同一包中可访问) 第二个类使其公共,即对任何其他类可见 参考资料: 前者是“包可见性”或“默认可见性”,其中 类仅对同一包中的类可见 后者是“公共可见性”,其中该类对任何其他类都可见 对于成员、方法和内部类,还存在以下可见性修饰符: “受保护的可见性”与包

两者之间有什么区别

class x {
    //code here
}


有时我在网上看到一些例子,它们会有
公共类
而不是
,它们都是简单的程序。我使用
进行我的作业,其他人也一样

第一个类将导致为您的类分配默认可见性,即
包专用
(即:在同一
包中可访问)

第二个类使其
公共
,即对任何其他类可见

参考资料:
  • 前者是“包可见性”或“默认可见性”,其中 类仅对同一包中的类可见
  • 后者是“公共可见性”,其中该类对任何其他类都可见
对于成员、方法和内部类,还存在以下可见性修饰符:

  • “受保护的可见性”与包相同,只是 继承用受保护范围定义的类的用户也可以访问 它
  • “私有可见性”表示该类仅可供
    本身

    • 最简单的说法是:

      如果您拥有的所有内容都在同一个包中(每个文件顶部的包com.myschool.myapp),则没有区别,但如果任何内容想要访问其包外的任何内容,则必须是公共的


      例如,“String”在“java.lang”中,您的包几乎肯定不在java.lang中,因此,如果String不是公共的,您就无法访问它。

      第一个将是默认类,即它不能在除自身之外的任何其他包中访问,但可以被同一包中的其他类访问

      第二个是公开的,也就是说,您可以从任何包的任何类访问它,就像您访问字符串和数组一样,它们是不同的包

      记住,我们谈论的是从包而不是类访问

      关于,, 然后:如果我有一个未声明为public的类X(请大写类名),我可以在其中包含公共实例变量(例如publicstringname;)


      当然,您可以在非公共类中使用公共实例变量。

      -1您不能将类声明为受
      保护的
      私有的
      。让一个类只对它自己可见有什么意义呢?这两个答案都是正确的。还有一条评论:尝试在两个类上都加上“public”,或者在与.java源文件名不匹配的类名上加上“public”,然后观察将出现的编译错误;)几乎。私有类也可以通过其封闭类访问。还值得注意的是,每个.java文件可能只有一个公共类,如果.java文件包含公共类,则文件名必须与类名匹配。@NullUser:当然可以有受保护类和私有类。你在自己的答案中发布的链接清楚地表明了这一点。请取消你的否决票。这是一个很好的答案。@NullUserExceptionఠ_ఠ - 如果是内部类,则可以有受保护类和私有类。您不能有受保护的或私有的顶级类。然后:如果我有一个未声明为
      public
      class X
      (请大写类名),我可以在其中包含公共实例变量(例如
      public String name;
      public class x {
          //code here
      }