有
1、public (如: public int a = 0;)
public是公共的意思,应该是在整个项目中,可以在任何类中被访问。
2、private (如: private int a = 0;)
private是私有的意思,就是只能在当前的类中被访问,这也是保护数据不被泄漏的一种方法。
3、protected (如: protected int a = 0;)
protected是受保护的意思,但是它比private开放一些,主要用于父类、子类之间访问。
4、默认 - 其实就是前面什么也没带,也是我们最常用的(如: int a = 0;)
这个用的最多,我们理解为它可以在包内各个类中被访问,包就是文件呀,各个类就是文件夹下的.java类文件。
5、CSDN的编辑器还是很给力的,四项的具体表格对比。
声明命令 | 同一个 .java类 | 同一个包 | 不同的包 | ||
非子类 | 子类 | 非子类 | 子类 | ||
public | √ | √ | √ | √ | √ |
private | √ | × | × | × | × |
protected | √ | √ | √ | × | √ |
默认(什么也不带) | √ | √ | √ | × | × |
6、对包(package)的理解
刚开始,我也对包不太解决,后才知道,包可以理解为【文件夹】,当然,也可以理解为【同一目录】下的文件,我觉得,主要还是为.java程序文件归类的,否则,一堆.java文件,有点晃眼呀。
需要注意的是:如果你要用【一个包】里的类调用【另一个包】里的类,那么,就要先声明要调用类的包,这就是我们看到的【
import】的用法:import 包名.类名;,比如:import shapes.Line; shapes是包名,也是文件夹名,Line是类名,也是.java文件名。
7、带void和不带void的区别。
刚开始我也不太明白,由其不明白main 中为什么要加void,后来百度翻译void是空白、无效的意思,才知道加 void是【无返回值】。而如果不加,就必须在函数里有返回值。还是上个代码,看的比较明白。
public void add() // 因为加了void,所以没有 return
{
a++;
if(a == b)
{
a = 0;
}
}
public int getvalue() // 没有加void
{
return a; // 因为,没有加void,所以必须有return
}