1.可以定义。
2.因为,静态内部类也是一个类,类里面可以定义静态成员,也可以定义非静态成员。
对于 在静态内部类里面的静态成员和非静态成员的区别在于,静态内部类的非静态成员可以访问外部类的静态变量,而静态成员则不可以。
实现静态内部类注意事项:
1.一个内部类不是被定义成静态内部类,那么在定义成员变量或者成员方法的时候,是不能够被定义成静态成员变量与静态成员方法的。
也就是说,在非静态内部类中不可以声明静态成员
2.非静态外部类可以随意访问其外部类的成员变量以及方法,但是如果一个内部类被声明为static,则其在访问包括自身的外部类会有诸多的限制。
静态内部类不能访问其外部类的非静态成员变量和方法
3.在一个类中创建非静态成员内部类的时候,有一个强制性的规定,即内部类的实例一定要绑定在外部类的实例中。
要在一个外部类中定义一个静态的内部类,不需要利用关键字new来创建内部类的实例。
静态内存系统分给一定的内存后不再变化了。
动态内存系统开始不分配内存,运行时根据需要分配。
静态内存是在程序一开始运行就会分配内存,直到程序结束了,内存才被释放。
动态内存是在程序调用在程序中定义的函数时才被分配,函数调用结束了,动态内存就释放。
静态函数与普通函数的区别:
1.用静态修饰的函数,本限定在本源码文件中,不能被本源码文件以外的代码文件调用。
而普通的函数,默认是extern的,也就是说,可以被其它代码文件调用该函数。
2.在函数的返回类型前加上关键字static,函数就被定义成为静态函数。
普通函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。
因此定义静态函数有以下好处:其他文件中可以定义相同名字的函数,不会发生冲突。
静态函数不能被其他文件所用。