------- android培训、java培训、期待与您交流! ----------
总结完就忘了的知识点,复习时候再做个记录
1. this:成员变量和局部变量重名时候使用,this指代本类对象
而且还可以在构造函数中调用其他构造函数,但是必须放在第一行,因为初始化要先执行。
2.成员变量和静态变量差异
成员变量:实例变量,随着对象创建而存在,对象被回收而消失,存在对象堆内存中,只能被 对象调用
静态变量:类变量,随着类存在而存在,类的消失而消失,存在共享数据区。不仅可以被对象
调用,也可以被类直接调用。
3.关于主函数:
主函数是静态的,而且格式是固定的,是程序的入口,能被JVM识别。
String[] args :主函数参数列表,是数组类型的参数,而且元素都是字符串。
4.静态变量:
只要是对象共有的数据,可以用static修饰,如果对象数据不同(对象的特有数据),就不能用静态
5.静态函数:
只要访问到对象特有数据,就不能用static修饰,反之则可以。
6.静态代码块和构造代码块和构造函数区别
静态代码块格式 :static{代码块要执行的语句}
随着类的加载而加载,只执行一次。优先主函数执行。对类的属性初始化。
构造代码块 可以对所有对象初始化。每个对象建立都要执行。
构造函数:对相对应的对象进行初始化,只在对象建立时候调用一次。
7.注释文档,想把一个类文档化,类必须是public ,其中私有方法不会在文档中体现出来。
8.super 关键字的用法
子类可以访问父类非私有的属性和方法。
super用法和this很像,如果子类和父类有同名的成员变量,就用super区分父类。
9.子父类成员函数操作
当子父类中出现成员函数一模一样的情况,会运行子类的函数。这是函数在子父类中的另一个特性:函数的覆盖。当想用到父类中的函数时候可以用super.函数名获取
10.函数覆盖注意要点
父类中私有方法不能被覆盖
父类中的static的方法无法被覆盖
子类的方法权限一定不小于父类方法的权限:就是修饰方法的关键字(常用public,private)
11.子父类的构造函数:
1、父类中如果没有空参构造函数,那么子类构造函数必须用this(子类中的构造函数)或者super(父类中的构造函数)指定要访问的构造函数。
2、 如果子类构造函数,用this访问了子类中的另一个构造函数,则默认super()消失。因为this和super都必须存在构造函数的第一行。所以只有一个,但是必须保证有其他构造函数,访问父类构造函数。
3、super必须要在第一行,因为必须要先初始化父类。
12、对象实例化过程,以Person p = new Person();为例:
1. JVM会读取指定的路径下的Person.class文件,并加载进内存,并会先加载Person的父类(如果有直接的父类的情况下)。
2. 在内存中开辟空间,并分配地址。
3. 并在对象空间中,对对象的属性进行默认初始化。
4. 调用对应的构造函数进行初始化。
5. 在构造函数中,第一行会先到调用父类中构造函数进行初始化。
6. 父类初始化完毕后,再对子类的属性进行显示初始化。
7. 再进行子类构造函数的特定初始化。
8. 初始化完毕后,将地址值赋值给引用变量。
13.抽象类和接口的区别
抽象类:需要继承才能创建对象,只有单继承。有抽象方法也有非抽象方法,is a关系
接口:需要去实现,多实现。只有抽象方法。like a关系。
本文出自 “点点滴滴” 博客,请务必保留此出处http://arctictern.blog.51cto.com/10120640/1661350
原文:http://arctictern.blog.51cto.com/10120640/1661350