类(2)
权限修饰符:主要包括private、public和protected,
作用:控制着对类和类的成员变量以及成员方法的访问。
下边我们来分别介绍一下这三种权限修饰符的功能:
-
private权限修饰符:如果一个类的成员变量或成员方法被修饰成private,则该成员变量只能在本类中被使用,在子类中是不可见的,并且对其他包的类也是不可见的。如果一个类的访问权限被设置为private,这个类将隐藏其内的所有数据,一面用户直接访问到它。
-
public权限修饰符:如果将类的成员变量和成员方法的访问权限设置为public,那么除了可以在本类使用这些数据之外,还可以在子类的其他包的类中使用。
-
protect权限修饰符:如果一个类使用了protected权限修饰符,那么只有本白内的该类的子类或其他类可以访问此类中的成员变量和成员方法。。
总结:public和protect修饰的类可以由子类访问,如果子类和父类不在同一包中,那么只有权限修饰符为public的类可以进行权限访问。如果父类不允许通过继承产生的子类访问它的成员变量,那么必须使用private声明父类的这个成员变量。
关系如下表:
注意:当声明类时不适用public、protected和private修饰符设置类的权限,则这个类预设为包存取范围,即只有一个包中的类可以调用这个类的成员变量或成员方法。
类的权限设定会影响成员变量,为方便理解,举例如下:
在项目中的yasuo包里创建yongen类,该类使用默认的访问权限:
注意:当声明类时不适用public、protected和private修饰符设置类的权限,则这个类预设为包存取范
package yasuo
class yongen {
public void doString() {
...//方法体
}
}
在上述代码中,由于类的修饰符为默认修饰符,即只有一个包内的其他子类可以对该类进行访问,而yongen类的访问权限相同,因为Java语言规定,类的权限设定会约束类成员的权限设定,所以上诉代码等同如下代码:
package yasuo;
class yongen {
void doString()
...//方法体
}
}
局部变量:
在上一篇文章已经讲述过成员方法,如果在成员方法内定义一个变量,那么这个变量被称为局部变量。
局部变量是在方法被执行时创建,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译错误。
public class yongen {
public String getName(){
int id=0;
setName("Java:从入门到头秃 ");
return id+this.name;
}
}
如果将id这个几部变量的初始值去掉,编译器将出现错误。
局部变量的有效范围:
可以将局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到变量的结束为止,在互相不嵌套的作用域中可以同时声明两个名称和类型相同的局部变量。但是可在互相嵌套的区域中不可以这样声明,如果将局部变量在方法体的for循环中再次定义,编译器将会报错。
注意:在作用范围外使用局部变量是一个常见的错误,因为在作用范围外没有
本文章是博主在网上购买的清华大学出版社出版的《Java从入门到精通》第五版自学Java以笔记形式发表,其中博文大多数内容参考次数,为表对原书作者的尊敬,在此推广此书,有兴趣学Java的小伙伴们可以了解一下~