Java的面相对象理念是学习Java基础,只有深刻理解了什么事面向对象才能很好的学习Java,那么什么是面向对象呢?今天小编与大家一起了解一下。
Java中一切皆是对象!
注意:8种基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有成员变量、方法可以被调用。
为解决8种基本数据类型不能当成Object类型(所有类的父类)变量使用的问题,Java提供了包装类的概念,为8种基本数据类型分别定义了相应的引用类型,例如:int的包装类是Integer,包装类可以把8种基本数据类型的值包装成对象使用。包装类是Java自带类,位于Java.lang包下。
Integeri=newInteger(10);
上面例子中,i只是一个对象的引用,存放在栈中,而实际的数值10则是放在堆里。
封装:
将对象的状态信息(eg:Person对象的age变量)隐藏在对象内部,外部程序只能通过该类提供的方法来实现对内部信息的操作和访问。
继承:
继承就是子类继承父类的特征和行为,使得子类具有父类的各种属性和方法(重用父类代码)。
多态(难点):
Java引用变量,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定(即子类对象赋给父类变量),如果编译时类型和运行时类型不一致,就可能出现多态。
1.多态定义:相同类型的(引用)变量,调用同一个方法(父类和子类都有的同名方法)时呈现出多种不同的行为特征。
当引用变量polymophicBc编译时类型为BaseClass类型,而运行时类型为SubClass类型,运行时调用该引用变量的方法时,其方法行为总是表现出子类SubClass方法的行为特征,而不是父类BaseClass方法的行为特征。
BaseClasspolymophicBc=newSubClass();
2.多态的条件:有继承关系;子类重写父类方法;父类引用变量指向子类对象。
3.优点:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。当一个新的情景出现时,无须对现有的代码进行改动,而只需要增加一个新的类和新的同名方法。
更多最新咨询尽在极悦微信平台《极悦Java学院》