黑马程序员技术交流社区

标题: 定义类时public class 和class 有什么区别? [打印本页]

作者: 热血青年    时间: 2014-5-28 00:42
标题: 定义类时public class 和class 有什么区别?
本帖最后由 热血青年 于 2014-5-29 00:31 编辑

定义类时public class 和class 有什么区别?

作者: shisishishisi    时间: 2014-5-28 01:02
1、private修饰词,表示成员是私有的,只有自身可以访问;   
2、protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。   
3、无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限;  比protected的权限大,比publicde 权限小
4、public修饰词,表示成员是公开的,所有其他类都可以访问;一个class文件中只允许存在一个public 修饰的class ,并且该class名和java文件名一致
作者: 我为你着迷    时间: 2014-5-28 07:22
用public修饰的话 就是必须要保证class名和java文件是一样的  而没有public修饰的类的话类名和java文件名是可以不一样的  
作者: 古陵逝烟    时间: 2014-5-28 07:46
我是来混分的,嘿嘿
作者: 茂子    时间: 2014-5-28 09:42
我为你着迷 发表于 2 小时前
用public修饰的话 就是必须要保证class名和java文件是一样的  而没有public修饰的类的话类名和java文件名是可以不一样的...

帮忙补充一点,当涉及到包与包之间类的访问时(不涉及继承关系),一个包中的类要向另一个包引用类建立对象时,这个类应该被public修饰,增大权限..
作者: Aron    时间: 2014-5-28 10:00
来看看 吼吼
作者: 路漫漫_求索    时间: 2014-5-28 10:14
被public class 修饰的类 只能在一个Java文件中出现一次,并且public class 后面所跟的类名必须和文件名一模一样,如下代码:文件名:Test.java
public class Test{
      public static void main(String[]args){
      }
}
而被public 修饰类,表示声明任何地方均可引用此类
而class 定义的类,可以在文件中出现多次。如:
class TestA{}
class TestB{}
而class类可以被同一个包内的成员访问引用



作者: 花花拉拉    时间: 2014-5-28 10:27
都可以用来定义类
作者: 花花拉拉    时间: 2014-5-28 10:29
都可以用来定义类

1、一个类中只能有一个public class声明,但是可以有多个class声明

2、用public class声明类时,类名必须跟文件名一致,否则发生编译错误;用class声明累则可以不同,但是编程出来的.class文件名跟类名相同


无论试用那种定义方式,定义了多少个类则会有多少个 *.class文件

作者: TS__likewise    时间: 2014-5-28 19:22
话说,刚开始介绍的好像就是这个,做题的时候多数,都是public class ,编译的时候好弄,区别吗就是 多打了一个英文单词。嘿嘿,
学的第一个程序,
class  Demo
{
public static void main(String[] args)
{
  System.out.println("Hello World!");
}
}
保存文件,起个名字,叫,nb
用黑屏编译,javac nb.java
                  Java Demo
输出 hello world
那么加上public
你再编译,javac nb.java
               
报错了有木有找不到了
回头,你把文件重命名叫Demo

javac Demo.java
Java Demo
就好了,明白了吗
作者: 热血青年    时间: 2014-5-28 20:55
TS__likewise 发表于 2014-5-28 19:22
话说,刚开始介绍的好像就是这个,做题的时候多数,都是public class ,编译的时候好弄,区别吗就是 多打了 ...

明白了 谢谢! 我就是遇到了这个问题
作者: 热血青年    时间: 2014-5-28 20:56
shisishishisi 发表于 2014-5-28 01:02
1、private修饰词,表示成员是私有的,只有自身可以访问;   
2、protected,表示受保护权限,体现在继承, ...

恩  知道了 谢谢!!!
作者: 远行莫念、    时间: 2014-5-28 21:15
public是权限修饰符、是最大权限的意思。前面加了public代表权限最大。可以被任何对象调用,类上不加任何权限修饰符,默认就是public。个人理解。
作者: shisishishisi    时间: 2014-5-28 21:26
热血青年 发表于 2014-5-28 20:56
恩  知道了 谢谢!!!

能不能给黑马币。。。急需。。越多越好。。。
作者: 唤月    时间: 2014-5-28 21:42
public class:表示在同一个包中或其它包中的类可以访问该类;class:表示只有同一个包中的其他类才能访问该类
作者: wangleixhlm    时间: 2014-5-28 21:49
public是权限修饰词而已,有public和没有类的权限不一样
作者: qfch    时间: 2014-5-28 22:03
来学习的啊
作者: woshihq    时间: 2014-5-28 22:38
楼主正解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2