---------------------- android培训、java培训、期待与您交流! ----------------------
通过对Java基础知识的学习,现将在开发过程中经常用到的知识汇总:
什么时候使用静态?
1.什么时候定义静态变量(类变量):
当对象中出现共享数据时,
2 什么时候定义静态函数?
当功能内部没有访问到非静态(对象的特有数据)
静态变量与静态函数的加载 是随类的加载而加载的
在对子类对象进行初始化时,父类的构造函数也会运行,
那是因为子类的构造函数默认第一行有一条隐式的语句 super()
Super():会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是Super().
为什么子类一定要访问父类中的构造函数。
因为父类中的数据子类可以直接获取,所以子类对象在建立里,需要先查看父类是如何对这些数据进行初始化的,
所以子类在对象初始化时,要先访问一下父类中的构造函数。
如是要访问父类中指定的构造函数,可以通过手动定义super语句的方式来指定。
注意:super语句一定定义在子类构造函数的第一行。
子类的所有构造函数,默认都会访问父类中空参数的构造函数。
因为子类中每一个构造函数的第一行都有一句隐式super().
当父类中没有空参数的构造函数进,子类必须手动的通过super语句的形式来指定要访问父类中的构造函数,
当然,子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数
子类中至少会有一个构造函数会访问父类中的构造函数。
Final: 修饰符
1.可以修饰类,函数,变量
2.final 修饰的类不可以被继承,为了避免被继承,被子类复写功能。
3.被final 修饰的方法不可以被复写。
4.final修饰的变量是一个常量只能赋值一次,既可以修饰成员变更,也可以修饰局部变量
当描述事物时,一些数据的出现是固定的,那么这时为了增强阅读性,都给这些值起了个名字,方便于阅读,而这个值不需要改变,所以加上final修饰,作为常量,常量的书写规范所有字母都大写,如果由多个单词组成,单词间通过_连接
5.内部类定义在类中的局部位置上时,只能访问该局部被 final 修饰的变量。
抽象类的特点:
1, 抽象方法一定在抽象类中。
2, 抽象方法和抽象类都必须被abstract 关键字修饰
3, 抽象类不可以用new创建,因为调用抽象方法没意义。
4, 抽象类中的抽象方法要被调用,必须由子类复写所有的抽象方法后,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
内部类:
内部类的访问规则:
1. 内部类可以直接访问外部类中的成员,包括私有。
之所以可以直接访问外部类中的成员,是因为内部类中持有一个外部类的引用,格式 外部类名。This
2. 外部类要访问内部内,必须建立内部类对象。
访问格式
1. 当内部类定义在外部类的成员位置上,而非私用,可以在外部其他类中
可以直接建立内部类对象
格式 外部类名。内部类名 变量名 = 外部类对象。内部类对象;
2. 内部类在成员位置上,就可以被成员修饰符所修饰
比如,private: 将内部类在外部类中进行封装
Static:内部类就具备staticr 特性
当内部类被static修饰后,只能直接访问外部类的static成员,出现了访问局限
在外部其他类中, 如何直接访问static内部类的非静态成员呢?
New 外部类。内部类()。非静态成员
在外部其他类中, 如何直接访问static内部类的静态成员呢?
外部类。内部类。静态成员
注意:当内部类定义了静态成员,该内部类必须是static.
当外部类的静态方法访问内部类时,内部类也必须是static.
总之: 当描述事物时,事物的内部还有事物,该事物用内部类来描述。
因为内部事务在使用外部事物的内容。
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima