黑马程序员技术交流社区

标题: 关于类的public与private的修饰疑惑 [打印本页]

作者: 抽烟男孩    时间: 2013-4-2 18:03
标题: 关于类的public与private的修饰疑惑
本帖最后由 抽烟男孩 于 2013-4-3 08:08 编辑

在Eclipse编译器里定义一个类只能是public或defualt
如我定义以下类会有问题
  1. private class Test{
  2. public static void get(String[] args){
  3. System.out.println("我是defualt类,谁能访问我");
  4. }
  5. }
复制代码
而且如果我想两个类写在一起也会有问题
  1. private class Help {
  2. Help(){System.out.println("我是Help类,我想成为私有类")}
  3. }
  4. public class Test9 {
  5. public static void main(String[] args){
  6. System.out.println("我是defualt类,谁能访问我");
  7. }
  8. }
复制代码
我想问的是java中默认的修饰符defualt是friend吗?java中的私有类如何定义?写在一起的两个类中无修饰符的类是否谁有访问权限?

作者: 谢冬    时间: 2013-4-2 18:12
您这编译能通过吗? 外部类只能用public或者默认修饰,这里的默认修饰符是不写,java中好像没有friend一说,就是class前面不加任何修饰!java中内部类才可以用private修饰!如果你要把两个类放在一个文件中没问题,但是最多只能有一个类使用public修饰
作者: 张源锋    时间: 2013-4-2 18:17
本帖最后由 无奈№追夜 于 2013-4-2 22:23 编辑

看图,总结了各个修饰符的权限,不是内部class只能是public  或default

P.jpg (21.22 KB, 下载次数: 142)

P.jpg

作者: 赵海洋    时间: 2013-4-2 18:37
private不能修饰外部类,只能修饰内部类。而public和default都能修饰外部类和内部类。所以那里不能用private。
作者: 庞立森    时间: 2013-4-2 18:44
你那样写编译都会出错,
private不能用在类上(确切的说不能用在外部类上),只能用在类中,但是可以修饰内部类如下
class Demo
{
       private class Demo1
         {
         }

}
一般用在外部类的有public protect
protect是在一个包中可以访问,
作者: 王川    时间: 2013-4-2 21:00
私有类只能写在其他类中,属于某一个类在内部调用
作者: tshch1989    时间: 2013-4-2 21:21
private是成员修饰符,只能修饰类的成员,不能用在类的外部,java就是这么规定的,是规则哦亲;
作者: 陆旭东    时间: 2013-4-2 21:28
修饰类名只有public和默认,只有成员方法和变量能用public,private,protect和默认
作者: 梁志兵    时间: 2013-4-2 21:33
public 公共的
public 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。 可能只会在其他任何类或包中引用 public 类、方法或字段。所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。

private 私有的
private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。 只能在声明 private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言,它们是不可见的。 所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员

作者: 陈丽莉    时间: 2013-4-2 22:10
若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~




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