------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
面向对象(成员变量和局部变量的区别)
1:在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
2:在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存)
3:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4:初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
引用数据类型变量包括哪些:数组,类,接口
this关键字:
代表当前对象的引用(代表本来对象的引用/指代)
this的本质是一个对象
在每一个普通方法里,都有一个this,谁调用这个方法,this就代表谁.
下面说下final:
1.被final修饰的类是不能被继承的 附代码
2.被final修饰的方法是不能被重写的 代码如下:
3.被final修饰的变量是常量,只能被赋值一次
抽象类:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类.它和接口有什么区别呢?
类可以实现(implements)多个接口,而只能继承一个类.
抽象类特点:
1.被abstruct修饰
2.抽象类可以没有抽象方法,但是有抽象方法的类一定是抽象类
3.抽象类不能被自己实例化,必须用一个子类来继承这个抽象类,重写当中的方法
4.一个类继承自一个抽象类,要么这个类也是一个抽象类,要么这个类重写了抽象类的所有抽象方法
抽象类能不能有构造方法.是可以的,但没意义,因为抽象类是不能被自己实例化.必须通过子类来实现自己的方法.
匿名内部类的特点:
1.只调用一次的时候可以用匿名内部类.
2.要有继承和实现的关系
3.要有重写
4.没有名字
代码如下:
直接new对象就是匿名对象.匿名对象可以减少资源,用完就会被删除掉.索引节省空间,还比较高效.节省代码量
匿名内部类的格式:
new 类名或者接口名(){
重写方法;
}
本质是一个继承了该类或者实现了该接口的子类匿名对象.
有很多不足,希望大家给点建议,我会加以改正.谢谢.