黑马程序员技术交流社区

标题: 类的默认访问修饰符是什么? [打印本页]

作者: laoyang    时间: 2011-11-20 19:07
标题: 类的默认访问修饰符是什么?
本帖最后由 laoyang 于 2011-11-23 14:25 编辑

类的默认访问修饰符是什么?内部类和结构呢?
作者: 吴雨翔    时间: 2011-11-20 22:53
本帖最后由 吴雨翔 于 2011-11-20 22:56 编辑

1.私有权限(private)

private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。

2.默认权限(default)

类,数据成员,构造方法,方法成员,都能够使用默认权限,即不写任何关键字。默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包的类中被调用。

3.受保护权限(protected)

protected可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被protected修饰的成员,能在定义它们的类中,同包的类中被调用。如果有不同包的类想调用它们,那么这个类必须是定义它们的类的子类。

4.公共权限(public)

public可以修饰类,数据成员,构造方法,方法成员。被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符。

有关Java语言的修饰符,需要注意的问题有如下几个:

1.并不是每个修饰符都可以修饰类(指外部类),只有public和default可以。

2.所有修饰符都可以修饰数据成员,方法成员,构造方法。

3.为了代码安全起见,修饰符不要尽量使用权限大的,而是适用即可。比如,数据成员,如果没有特殊需要,尽可能用private。

4.修饰符修饰的是“被访问”的权限。


作者: 肖瑞军    时间: 2011-11-20 23:06
类,只能默认没有,或者public修饰
内部类,在外部类成员位置上时,都可以使用成员修饰符。在局部时,不可以被成员修饰符修饰。
作者: 赵超    时间: 2011-11-21 00:19
类只有两种修饰符,一个是public,另一个是默认的。默认对于学过c++的同志可能会不明白,默认相当于c++中的friendly,也就是c++中说的友好的。
作者: 804404980    时间: 2011-11-21 05:33
默认的权限  在public 和private   之间。
作者: 程立彬    时间: 2011-11-23 13:36
类中为protected权限,他是介于private和public之间的
当类被继承时
如果是私有(private)继承,那么子类不能访问父类的所有成员
如果是共有(public)继承,那么子类不能访问父类的私有成员
如果是保护(protected)继承,那么子类能够能访问父类的私有成员
作者: 王丰盛568    时间: 2011-11-23 14:36
抽象类
1.什么是抽象类
使用abstract关键字修饰的类就是抽象类, 不能创建对象. 不一定含有抽象方法.
2.抽象方法
使用abstract关键字修饰的方法就是抽象方法. 子类继承抽象类时, 必须覆盖该方法.
               
.内部类
1.普通内部类
在类中定义的内部类.
需要创建外部类对象之后才能创建内部类对象.
在内部类对象中使用"外部类名.this.成员名"可以访问外部类的成员.
class文件名: 外部类名$内部类名.class
2.方法中的内部类
如果一个类只在某个方法中使用, 那么就可以定义在方法中.
方法中的内部类和普通内部类一样, 都是可以使用外部类的成员.
方法中的内部类访问方法中的局部变量时, 这个变量需要被声明为final的.
class文件名: 外部类名$编号内部类名.class
3.静态内部类
用static修饰的内部类.
不用创建外部类对象直接可以创建内部类对象.
可以声明静态的成员, 不能访问外部非静态成员.
class文件名: 外部类名$内部类名.class
* 4.匿名内部类
如果一个类只使用一次, 那么可以定义为匿名内部类.
格式为 "new 父类名(){类定义}" , 这么做是定义了制定类的子类, 并且创建了一个该类对象.
class文件名: 外部类名$编号.class




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