面向对象(需要注意的问题)

来源:互联网 发布:高清网络播放器排名 编辑:程序博客网 时间:2024/05/17 18:42

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

 

面向对象(成员变量和局部变量的区别)

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 类名或者接口名(){
   重写方法;
  }

 

 

本质是一个继承了该类或者实现了该接口的子类匿名对象.

 

 

 有很多不足,希望大家给点建议,我会加以改正.谢谢.

 

 

0 0