类较之传统过程性语言的模块还增加了访问控制的能力,可以利用关键字private(私有)、protected(保护)、public(公有)以及默认的friendly(友好)来修饰类、变量和方法,以限制它们在类与类之间可以被访问的范围。
/*访问权限是指对变量的读写和方法的执行权限,不同于上面对继承、重载所置的final限制*/
1、类的访问控制
类仅可用public、final和abstract来修饰,不能使用private、protected进行修饰,否则编译器会给出提示错误。
如若用public来声明一个类,则表示该类可以被所有其它类使用,否则只可以被同一个包的类使用。其格式一般如下:
[public] class ClassName{
class_body;
}
2、变量的访问控制
(1) 私有变量private
主要用于一些储存了重要数据的变量,并且仅供类中的函数使用。 主要目的是为了加强系统的安全性。其一般格式如下:
class A{
private int myvar;
}
(2) 保护变量protected
当程序用protected修饰后,该变量被成为保护变量,只允许被定义它的类、继承类(子类)和同一个包中的类进行访问。其一般格式为:
class A{
protected int myvar;
}
(3) 公有变量public
当成员变量使用public修饰后,就变成公有变量,可以被任意类对其进行访问。其一般形式为:
class A{
public int myvar;
}
(4) 友好变量friendly
此为Java的默认修饰符,若没有声明其它变量,则为friendly变量。可以被同包的类进行访问。其格式为:
class A{
int myvar;
}
3、方法的访问控制
访问权限范围表
访问权限修饰符 | 该变量或方法可以被访问的范围 |
private | 同一个类 |
protected | 同一个类,子类 |
public | 任意类 |
friendly | 同一个包中的类 |
4、创建类的对象
对于类,只能用它来声明一个对象。例如Scanner scanner (创建一个scanner对象):
如:
Scanner scanner = new scanner(System.in);//需要用new操作该对象的实例
5、构建Java对象和类的构造函数
在Java中创建类的对象,必须先声明该对象,然后通过new运算符来创建对象,实现对对象的内存分配。其一般格式为:
ClassName(类名) obj_name(创建的对象名);
obj_name = new ClassName(argument list);
注意:类的构造函数对象的创建是很重要的,构造函数的名字必须与类名相同,而且构造函数不能带有返回值类型。
6、通过对象使用类的变量和方法
创建对象的目的是为了使用类模块中定义的变量和函数。使用成员变量和成员函数的一般格式为:
objectname.variable;
objectname.method;
/*如果不对类中的成员变量进行初始赋值,那么系统调用默认的构造函数进行初始化。数值类型的初始值为0;布尔型初始值为false。*/
7、Java对象的释放
简单讲就是需要清除掉无用的内存块,而释放存储器内存。主要用于类中声明了指针类型的变量,则该类必须显示定义一个析构函数,否则,可能造成内存泄露。当然,非指针的对象释放完全可有编译器自动插入处理代码,是无需编写删除代码的。