OOP

为什么要有包名:解决类名冲突的问题;

重写:子类的方法名和参数列表于父类的方法相同,但方法的实现不同;当子类对象的重写方法被调用时

无论通过父类的引用还是子类的引用来调用,运行的是子类的重写后的版本;

 

 

 

重载和重写的区别:

  1.重载是指在一个类中定义多个方法名相同但参数列表不同的方法,在编译时根据参数的个数和类型来决定绑定哪个方法;

  2.重写是指在子类中定义和父类完全相同的方法,在程序运行时,根据对象的类型不同(不是引用类型)而调用不同的版本;


局部变量:

  1.定义在方法中;

  2.方法被调用时,存在栈中,方法调用结束从栈中清除。

  3.没有默认值必须自行设定初始值

成员变量:

  1.定义在类中,方法外;

  2.类被实例化后,存在堆中,对象被回收时,成员变量失效。

  3.有默认初始值,可以不显示初始化;

JVM:的作用:为java程序提供并管理所需要的内存空间;JVM内存分为 堆,栈,方法区,分别用于存储不同的数据;

堆:用来放new关键字所创建的对象;当一个对象没有任何引用时视为被放弃的对象,用System.gc();回收

栈:用于存放方法中的所有局部变量,即引用变量

方法区:类的各种信息(包括方法)都在方法区中存储;

 

 

 

 

 

 

继承:

子类继承父类,当父类只有有参构造,没无参构造时候,在子类的构造方法中必须在第一行调用super()来调用父类的内容;

 

 

访问控制修饰符 =================================================

 ==============================================static、final

static变量是属于类的变量可以通过类名来引用,存在方法区中,不属于对象的数据结构

final 关键字修饰成员变量,意为不可改变。(也可以修饰局部变量,使用 );

final关键字修饰的方法不能被重写(意义:防止子类在定义方法时候造成不经意的重写);

final关键字修饰的类不能被继承:例如String.Math  Integer  Double等基础类不能被继承。

posted @ 2016-10-26 15:42  21heshang  阅读(175)  评论(0编辑  收藏  举报