美文网首页
2019-01-19

2019-01-19

作者: 再见_9885 | 来源:发表于2019-01-19 17:37 被阅读0次

1,封装

* A.类与对象

* 类,用于描述多个对象的共同特征,它是对象的模板。

* 对象,用于描述现实中的个体,它是类的实例。

* 类的定义:使用关键字class来定义java中的类

* 格式:

* class 类名 {

* //属性

* 数据类型 变量名;

* …

* //方法

* 修饰符 返回值类型 方法名(参数){  }

* …

* }

*

* B.创建对象:

* 格式:

* 类名 对象名 = new 类名();

* C.封装(private关键字)

* 封装,把对象的属性与方法的实现细节隐藏,仅对外提供一些公共的访问方式

* 封装的体现:

* 变量:使用 private 修饰,这就是变量的封装

* 方法:也是一种封装,封装了多条代码

* 类: 也是一种封装,封装了多个方法

* D.private关键字,私有的意思

* 它可以用来修饰类中的成员(成员变量,成员方法)

* private的特点:

* private修饰的成员只能在当前类中访问,其他类中无法直接访问

* E.this关键字

* this关键字,本类对象的引用

* this是在方法中使用的,哪个对象调用了该方法,那么,this就代表调用该方法的对象引用

* this什么时候存在的?当创建对象的时候,this存在的

* this的作用:用来区别同名的成员变量与局部变量(this.成员变量)

* public void setName(String name) {

* this.name = name;

* }

###02对象的内存图

对象的内存图.JPG

###04this内存图

* A.this内存图

继承

[if !supportLists]l [endif]继承:是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有

[if !supportLists]l [endif]继承的好处:可继承的属性和方法。

[if !supportLists]l [endif] 

提高了代表的可维护性

提高了代码的复用性

让类与类之间产生了继承关系

[if !supportLists]l [endif]继承的弊端:

类与类之间的耦合度过高

[if !supportLists]l [endif]继承特点:

java中类只能够单继承,不能多继承,可以多层继承

class Yy extends Object {}

class Fu extends Yy{}

class Zi extends Fu {}

所有的类都直接或者间接的继承了Object类,Object类称为祖宗类

[if !supportLists]l [endif]继承的注意事项:

1,使用关键字 extends 让类与类之间 产生继承关系

2,父类私有的成员,子类不能继承,因为根本看不到

3,不能为了继承某个功能而随意进行继承操作, 必须要符合 is a 的关系

苹果is a水果

男人is a人

狗is a人 , 这种情况就不能继承了

[if !supportLists]l [endif]继承中的成员变量关系:

不同名的变量:

子类直接继承使用

同名的变量:

默认访问的是子类自己的成员变量,想访问父类中的同名变量,请使用 super.成员变量;

[if !supportLists]l [endif]继承中的成员方法关系:

不同名的方法:

子类直接继承使用

同名的方法:

默认访问的是子类自己的成员方法,想访问父类中的同名方法,请使用super.成员方法();

[if !supportLists]l [endif]super:用来表示当前对象中包含的父类对象空间的引用

调用父类的成员变量:

super.成员变量;

调用方法的成员方法:

super.成员方法();

[if !supportLists]l [endif]方法重写(override):指 在子父类中,出现了方法声明相同的情况,也叫做方法覆盖,方法复写

[if !supportLists]l [endif]方法重写的注意事项:

[if !supportLists]1, [endif]子类的方法声明要与父类相同

2, 子类要重写方法的方法,方法的权限修饰符不能比父类的更低

[if !supportLists]l [endif]3, 父类私有的方法,子类不能够进行方法重写

[if !supportLists]l [endif]方法重载(overload):指 在同一个类中,多个方法名称相同,它们的参数列表不同(个数不同,数据类型不同)

[if !supportLists]l [endif]抽象

[if !supportLists]l [endif]抽象方法:方法只有声明部分,没有方法体

[if !supportLists]l [endif]抽象类:包含抽象方法的类,一定是抽象类

使用abstract 修饰的类,是抽象类

[if !supportLists]l [endif]抽象类的特点:  

1,抽象类与抽象方法都必须使用 abstract来修饰  

2,抽象类不能直接创建对象

3,抽象类中可以有抽象方法,也可以没有抽象方法

4,抽象类的子类

a,实现了抽象方法的具体类

b,抽象类

多态 接口

[if !supportLists]l [endif]接口:理解为是一个特殊的抽象类,但它不是类,是一个接口

[if !supportLists]l [endif]接口的特点:

1,定义一个接口用interface关键字

interface Inter{}

2,一个类实现一个接口,实现implements关键字

class Demo implements Inter{}

3, 接口不能直接创建对象

通过多态的方式,由子类来创建对象,接口多态

[if !supportLists]l [endif]接口中的成员特点:

成员变量:

只能是final 修饰的常量

默认修饰符:public static final

构造方法:

成员方法:

只能是抽象方法

默认修饰符: public abstract

[if !supportLists]l [endif]类与类,类与接口,接口与接口之间的关系

类与类之间:继承关系,单继承,可以是多层继承

类与接口之间: 实现关系,单实现,也可以多实现

接口与接口之间:继承关系,单继承,也可以是多继承

Java中的类可以继承一个父类的同时,实现多个接口

[if !supportLists]l [endif]多态:理解为同一种物质的多种形态

[if !supportLists]l [endif]多态使用的前提:

1,有继承或者实现关系

2,要方法重写

3,父类引用指向子类对象

[if !supportLists]l [endif]多态的成员访问特点:

方法的运行看右边,其他都看左边

[if !supportLists]l [endif]多态的好处:

提高了程序的扩展性

[if !supportLists]l [endif]多态的弊端:

不能访问子类的特有功能

[if !supportLists]l [endif]多态的分类

[if !supportLists]l [endif]类的多态

abstract class Fu {

                  public abstract void method();

}

class Zi extends Fu {

public void method(){

             System.out.println(“重写父类抽象方法”);

}

}

//类的多态使用

Fu fu= new Zi();

[if !supportLists]l [endif]接口的多态

interface Fu {

public abstract void method();

}

class Zi implements Fu {

public void method(){

        System.out.println(“重写接口抽象方法”);

}

}

相关文章

网友评论

      本文标题:2019-01-19

      本文链接:https://www.haomeiwen.com/subject/qwszdqtx.html