java-内部类

内部类分为:成员内部类,静态内部类,局部内部类,匿名内部类。

内部类定义:innerclass,在类的里面定义类就是内部类。

静态内部类和成员内部类可以用访问控制权限的修饰符修饰。public,protected,private,缺省,局部的不可以,匿名内部类相当于局部内部类。

内部类重要的作用:可以访问外部类中私有的数据。

成员内部类:1)成员内部类里面不能有静态方法和静态变量。2)成员内部类可以等同看作成员变量。3)成员内部类可以访问外部类所有的数据。

静态内部类:1).静态内部类可以直接访问外部类的静态数据,无法直接访问成员数据。2)静态内部类可以等同看作静态变量。

局部内部类:1)重点:局部内部类在访问局部变量的时候,局部变量必须使用final修饰。因为局部变量只能有一个值,不能更改。2)局部内部类等同于局部变量。

匿名内部类:这个类没有名字

public class Test{

//静态方法

public static void t(CustomerService cs){

cs.logout();

}

//入口

public static void main(String[] args){

//调用t方法

//使用匿名内部类的方式执行t方法

//整个这个"new CustomerService(){}"就是个匿名内部类

t(new CustomerService(){

public void logout(){

System.out.println("exit!");

}

});

//匿名内部类的优点:少定义一个类.

//缺点:无法重复使用!

}

}

//接口

interface CustomerService{

//退出系统

void logout();

}

2.数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。String有有length()这个方法。

3、HashMap和Hashtable的区别?

4.heap和stack有什么区别?

栈内存(stack):栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。

栈内存(heap):一般用于存放不放在当前方法栈中的那些数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法的结束而消失。

注意:方法中的局部变量使用final修饰后,放在堆中,而不是栈中。

你可能感兴趣的:(java-内部类)