能讲解 一下 什么是内部类吗? 讲详细点好嘛..比如它有什么作用..有什么特性..什么时候用...如何用等....附加 例子最好.. 看过 一些书 但是看不明白..不是很通俗易懂
解决方案 »
- 菜鸟级问题……找不到符号……
- JDBC的数据库操作都是同步操作,有没有异步的方法?
- Ubuntu中使用Runtime.getRuntime().exec时出现Permission denied
- 关于import
- java applet的编译问题
- 如果文件里既有图片又有文字,怎么把它读到数据库里,又把它从数据库里拿出来显示呢?有相应的源代码吗
- 在jbuilder中,如何把float格式的数据输出到一个文件中?请各位GG,JJ帮帮忙,这里先谢过了。
- 请教:java程序语言、java平台、java虚拟机的区别与联系
- proxy软件如何才能让用户输入用户名和口令
- java里让网页过期的方法是什么?
- 寻求公司实习,请网友帮忙!
- rs.getString(1)取得mssql数据库表字段出错,字段类型nvarchar
而外围类也可以访问内部类的成员变量和方法.如果内部类只在方法中使用,就可以把内部类定义在方法中,其作用域就是这个方法块中,如果内部类用到方法的局部变量,则该局部变量就要声明为final如果内部类只使用一次,就可以把内部类声明为匿名内部类.由于匿名内部类没有名字,也就没有构造方法.另外如果定义的一个类名比较常见,如:Double.为了避免冲突,可以将其定义为一个static内部类.如:Point2D.Double在学awt和Swing的时候回大量碰到内部类,到那时自然就明白了.还有要说的是,虚拟机对待内部类和普通类是一样的.之所以内部类可以访问其外围类是因为编译器将外围类对象的引用隐式传递给了内部类,而且还隐式构造了对外围类private成员和方法的访问方法.
class b{ //内部类 :)
}
static class c{ //静态内部类,(嵌套类)
}
void f(){
class d(){
}
if(true){
class e(){
}
} new d(){ //匿名类
void f(){
}
}
}
}
.......
开个玩笑。
class a{
class b{ //内部类 :)
}
static class c{ //静态内部类,(嵌套类)
}
void f(){
class d{
}
if(true){
class e{
}
} new d(){ //匿名类
void f(){
}
}
}
}
// Returning a handle to an inner class
package c07.parcel3;abstract class Contents {
abstract public int value();
}interface Destination {
String readLabel();
}public class Parcel3 {
private class PContents extends Contents {
private int i = 11;
public int value() { return i; }
}
protected class PDestination
implements Destination {
private String label;
private PDestination(String whereTo) {
label = whereTo;
}
public String readLabel() { return label; }
}
public Destination dest(String s) {
return new PDestination(s);
}
public Contents cont() {
return new PContents();
}
}class Test {
public static void main(String[] args) {
Parcel3 p = new Parcel3();
Contents c = p.cont();///////////////////////////////////////////////////////////
Destination d = p.dest("Tanzania");
// Illegal -- can't access private class:
//! Parcel3.PContents c = p.new PContents();
}
} ///:~