一. java的特性
在计算机预期分为两种语言,一种是面向对象,一种是面向过程,java就是面向对象语言,面向对象语言的特别是语言更加简单化,而C语言是面向过程,他更注重的是过程.面向对象语言的共同的特性是封装,继承,多态,重载.
1.重载:每一个面向对象的类都有构造方法,而方法名相同,参数不同,就是重载,
构造方法格式特点
方法名与类名相同(大小也要与类名一致)
没有返回值类型,连void都没有
没有具体的返回值return;
2.继承:子类继承父类的特有属性和方法,比如猫,狗的父类是动物.
3.封装:封装好的方法给其他类和对象使用.
4.多态:多态存在的三个必要条件,继承,重写,父类引用指向子类对象
多态的优点: 消除类型之间的耦合关系, 可替换性, 可扩充性, 接口性,灵活性, 简化性.
二.创建对象内存分配
内存分配图* Student s = new Student();
* 1,Student.class加载进内存
* 2,声明一个Student类型引用s
* 3,在堆内存创建对象,
* 4,给对象中属性默认初始化值
* 5,属性进行显示初始化
* 6,构造方法进栈,对对象中的属性赋值,构造方法弹栈
* 7,将对象的地址值赋值给s
三.面向对象关键字static
static关键字的特点
* a:随着类的加载而加载
* b:优先于对象存在
* c:被类的所有对象共享
* d:可以通过类名调用
static的注意事项
* a:在静态方法中是没有this关键字的
* 静态是随着类的加载而加载,this是随着对象的创建而存在。
* 静态比对象先存在。
* b:静态方法只能访问静态的成员变量和静态的成员方法
* 静态方法:
* 成员变量:只能访问静态变量
* 成员方法:只能访问静态成员方法
* 非静态方法:
* 成员变量:可以是静态的,也可以是非静态的
* 成员方法:可是是静态的成员方法,也可以是非静态的成员方法。
* 简单记:
* 静态只能访问静态。
四.面向对象继承的好处和弊端
* A:继承的好处
* a:提高了代码的复用性
* b:提高了代码的维护性
* c:让类与类之间产生了关系,是多态的前提
* B:继承的弊端
* 类的耦合性增强了。
* 开发的原则:高内聚,低耦合。
* 耦合:类与类的关系
* 内聚:就是自己完成某件事情的能力
* this:代表当前对象的引用,谁来调用我,我就代表谁
* super:代表当前对象父类的引用
* B:this和super的使用区别
* a:调用成员变量
* this.成员变量 调用本类的成员变量,也可以调用父类的成员变量
* super.成员变量 调用父类的成员变量
* b:调用构造方法
* this(...) 调用本类的构造方法
* super(...) 调用父类的构造方法
* c:调用成员方法
* this.成员方法 调用本类的成员方法,也可以调用父类的方法
* super.成员方法 调用父类的成员方法
网友评论