怎么让别的文件不能访问本文件中定义的类?

时间:2021-01-24 21:05:27
本人java小白,今天碰到一个问题,就是在一个文件内定义的类怎么限制其作用域为本文件呢?用private修饰报错啊?难道java中没有文件这个概念吗?文件夹下的所有类都混为一谈?

13 个解决方案

#1


你把类里面方法定义成私有的不就行了吗...

http://bbs.csdn.net/topics/300176640

#2


引用 1 楼 gjh1328714985 的回复:
你把类里面方法定义成私有的不就行了吗...

http://bbs.csdn.net/topics/300176640

那本文件中的其他类也就不能访问了啊,如何限制在文件范围内呢?

#3


内部类的形式:

public class Test {
  public class Abc {
  }
}


这样Abc只能本文件访问

#4


错了,应该是:

public class Test {
  private class Abc {
  }
}

#5


本文件……首先你用文件来区分类就是个问题

#6


用包就可以了

#7


用匿名类,别人类连名字都不晓得,看你怎么创建对象

#8


弱弱的问下 什么叫本文件?  

#9


用包来做,在你当前文件*.java开头加上  package  xxx.xxx.xxx  
不懂package的话,google下 

#10


引用 8 楼 Stluny 的回复:
弱弱的问下 什么叫本文件?  


同问

我所会的程序设计语言里,都基本上没有用文件作为访问隔离的,就算是有,也不是刻意这么做的

#11


引用 5 楼 NoMasp 的回复:
本文件……首先你用文件来区分类就是个问题

以前学的C++,所以对文件概念比较深

#12


引用 8 楼 Stluny 的回复:
弱弱的问下 什么叫本文件?  

以前学的C++对一个文件的概念比较深,其实就是想知道怎么让一些类可以访问一些类无法访问我要定义的类

#13


一般来说,有一个Java文件叫:A.java,定义了一个类A,在这个类A里面又定义了一个静态的类B(private的),这个类B就只有类A可以访问了,刚好达到楼主的目的。


/**
 * 外部类A
*/
public class A {
    /**
     * 在类A里面定义的私有静态内部类B,只有类A可以访问
    */
    private static class B {
    }
}

#1


你把类里面方法定义成私有的不就行了吗...

http://bbs.csdn.net/topics/300176640

#2


引用 1 楼 gjh1328714985 的回复:
你把类里面方法定义成私有的不就行了吗...

http://bbs.csdn.net/topics/300176640

那本文件中的其他类也就不能访问了啊,如何限制在文件范围内呢?

#3


内部类的形式:

public class Test {
  public class Abc {
  }
}


这样Abc只能本文件访问

#4


错了,应该是:

public class Test {
  private class Abc {
  }
}

#5


本文件……首先你用文件来区分类就是个问题

#6


用包就可以了

#7


用匿名类,别人类连名字都不晓得,看你怎么创建对象

#8


弱弱的问下 什么叫本文件?  

#9


用包来做,在你当前文件*.java开头加上  package  xxx.xxx.xxx  
不懂package的话,google下 

#10


引用 8 楼 Stluny 的回复:
弱弱的问下 什么叫本文件?  


同问

我所会的程序设计语言里,都基本上没有用文件作为访问隔离的,就算是有,也不是刻意这么做的

#11


引用 5 楼 NoMasp 的回复:
本文件……首先你用文件来区分类就是个问题

以前学的C++,所以对文件概念比较深

#12


引用 8 楼 Stluny 的回复:
弱弱的问下 什么叫本文件?  

以前学的C++对一个文件的概念比较深,其实就是想知道怎么让一些类可以访问一些类无法访问我要定义的类

#13


一般来说,有一个Java文件叫:A.java,定义了一个类A,在这个类A里面又定义了一个静态的类B(private的),这个类B就只有类A可以访问了,刚好达到楼主的目的。


/**
 * 外部类A
*/
public class A {
    /**
     * 在类A里面定义的私有静态内部类B,只有类A可以访问
    */
    private static class B {
    }
}