Java 面向对象

1. 万物皆对象

2. 面向对象和面向过程的区别:

    面向过程主要是描述一件事情或者是一个过程的执行

    面向对象编程主要是用语言描述将现实世界中存在的事物,或者规律。无限接近机器识别的语言。

3.对象:

    对象包括  属性  和  特征 

4.类:类是所有对象的抽象概念或者集合(物以类聚),对象称为类的具体实例。

           类是抽象的,对象是具体

5.面向对象的三大特征:

    封装 , 继承 , 多态

6.封装:隐藏内部实现细节,对外提供公共的访问方法;

    好处:代码设计者角度,安全性,防止代码被修改破坏; 

                调用者角度,忽略实现细节,只关注功能怎么用。

    设计:成员变量尽量私有化(private),对外提供公有方法

继承:从当前类中派生出一个新类,这个新类可以获得已有类的全部(非private)属性和方                法,并可以添加自己的属性和方法。即子类继承父类。

多态:对象的多种形态,以继承为基础

            对象的多态:向上转型  和向下转型

            方法的多态:方法的重载方法的覆写

7.package  包

    对所有class进行分类,以便方便管理

    命名规则:小写字母,一般都是四级目录:com.公司名.项目名.模块名称

8.构造方法:什么是构造方法?构造方法是一个类在初始化的形态,类本身自带特征。
    jvm在构建一个类的时候,会构建一个默认的构造方法。

   构造方法的特点:
   公有的、和类名相同、没有返回值
   构造方法的用处在哪里?
   初始化成员变量。
   构造方法越多,代表在这个类初始化的时候,形态越多,功能约强大。
   构造方法的重载概念(overload)
   构造方法的重载,参数类型不同,参数个数不同,参数次序不同 都能构成重载。仅仅限于本类。

9.类的成员方法:
   方法的概念:方法是一个类接收外部信息的其中的渠道。
   方法在一个类中专门解决业务逻辑的。

   public  返回值 方法名(参数列表){

      // return 返回值;
   }

10.方法参数的传递:传值或者传递引用
    方法的参数传递只能传递两种类型:
                如果要是传值,就是一个具体的值
                如果要传递引用,那么传递的该对象的地址

11.static 用来修饰静态的方法,代码块或者变量,可以直接使用类名调用,不需要new对象调用

    static 修饰的变量在内存中只有一个地址

    使用场景:只有在工具类中才可以使用,节省内存空间

12.static 用来修饰静态的方法、静态的代码模块、静态变量
    如果使用static所修饰的方法或者变量,可以使用类名直接调用,
    不需要new对象来调用.
    static 修饰的变量在内存中只有唯一的一个地址,
    使用场景:只有在工具类中才可以使用,该方法被频繁的调用,确实节省内存空间
13.类的继承 extends
    类与类的关系有哪些?
    第一种是关联(has-a)关系(聚合)、第二种是继承(is-a)关系
    如果是关联关系,那么就是类调用类的关系。
    所有的对象都是继承Object类,java是单根继承的特点
    单根继承的好处是什么?不好的地方?
    子类可以调用父类的方法,减少代码的冗余度。
    在父类的角度考虑问题,继承可以延伸父类的功能(扩大功能)
    如果子类继承父类,子类可以调用父类的公有方法,不能调用父类的私有方法
    子类调用父类的时候,父类的构造方法会被调用
    14.super关键字只能存在子类中,主要在子类的方法中调用父类的方法,包括构造方法,一般写在程序的第一行
    super可以在子类的构造方法中调用父类的构造方法super();
    重写(override)子类覆盖父类的同名方法,好处在于扩充子类的方法功能。
    里氏替换原则,如果B类和C类有相同的属性和方法,就应该把相同的属性和方法提取到A类中,让B类和C类继承A类
15.final关键字
    表示最终的。如果用final 所修饰的变量,称为常量(不能被改变或者赋值)。
    如果final修饰一个方法,那么该方法在子类中不能被重写。
    如果final 修饰一个类,那么这个类不能被继承。

16.抽象类 abstract 关键字
    public abstract class 类名{

    }
    抽象类和普通类的区别是什么?
    抽象类是不能被实例化的,也就是不能使用new 关键字,普通类是可以实例化的
    如果一个类有抽象方法,那么这个类必然是抽象类,反之抽象类不一定有抽象方法。
    定义一个抽象类的用途在哪里?
    抽象的概念是不需要实际去做的,但是在实际应用中有两种场景用途:
    1、父类某一个功能或者方法,需要子类强行去重写的,那么该方法必须是抽象的,这个类必须是抽象类。
    2、父类对于某一个方法,无法预知子类会怎么实现,那么该方法必须是抽象的。
    抽象类在继承的关系图中起到什么作用?
    承上启下的作用
17.接口 interface
    接口的概念:
    接口是一种标准,所有实现该接口的子类都要实现这个标准。
    接口也是一种契约,所有实现该接口的子类都要实现该契约的条款
    接口也是一种身份特征,所有的子类都具有该身份特征。
    接口里面的所有方法都是抽象的、公有的
    接口里所有的成员变量都是常量
    接口可以继承吗?接口是可以继承接口的。
18.多态
    什么是多态?一个事物在不同的条件下,所表现的多种形态。
    在开发中使用多态的场景,主要是使用在方法的参数传递上,可以传递接口、也可以传递抽象类

    instanceof 来判断两个类之间是否有关系

    对象的向上和向下转型:
    
    向上转型:统一标准   A父类  cdef子类都可以按照父类的标准执行

    向下转型的意义:使用子类独有的方法

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值