java包+面向对象

1.import和package

  1. package:

    • 打包:包名必须是小写字母,而类名的第一个字母一般为大写,这样在引用时,可以明显的分辨出包名和类名。
    • 包的作用:类在哪个包底下,可以更好的组织类,包与文件夹类似,文件夹可以将不同的文件放在同一个文件夹中,而包也可以将不同的类文件放在同一包中。减少类名的冲突问题,这也与文件夹类似,同一文件夹中的文件不能重名,不同文件中的 文件可以重名,同一包中的类名不能重复,不同包中的类名可以重复,对包中的类起了一定的保护作用。
    • 包的使用:使用 package 关键字指明类所在的包, package 语句必须在文件的最前面。
  2. import:

    • 导入:使用了包机制后,如果在一个类中使用了其他包中的类,需要使用 import 来引入。

    • import导入一个具体的类,不能导入一个具体的包。

      例如:import java.util.Arrays; 这个就是导入一个具体的类,但是import java.util;就会报错。

      import java.util.*;这里的*是通配符,导入这个包底下所有的类。

      问题:util底下有很多的类,难道是一下子全部导入了吗?不是的,java处理的时候,需要谁,才会把谁导入进去。C语言里通过include关键字,导入之后,就是把这个头文件里的内容全部拿过来了。

      **import static java.lang.System:**思考:这里的System是文件夹吗,不是,是类,import static 的作用就是直接调用该类中的静态方法,在调用System中的方法时,可以省略类名,直接用方法去点。但是不经常去用,可读性较差。

2.面向对象的基本特征

  1. 封装:对不必要公开的数据成员和方法,使用private关键字进行修饰
  2. 继承:对共性的抽取,使用extends关键字进行处理,意义:对代码进行重复使用
    • java当中是单继承,不能同时继承两个类以上的类,包括两个。
    • 子类构造的同时,要先帮助父类进行构造。super:[不能出现在静态方法中],父类对象的引用 super();//调用父类的构造方法,可以调用父类的方法和属性。
    • 如果一个类不想被继承,我们可以设置final修饰,final int a=10;//常量,不可以被修改 ,final class A 代表整个类,不可以被继承

在这里插入图片描述

  1. 多态:一种事物多种形态,也就是所谓的向上转型。

    普通类:

    动态绑定:

    1. 父类引用,引用子类的对象
    2. 通过这个父类引用调用父类和子类同名的覆盖方法。

    重写:

    1. 方法名要相同
    2. 参数列表相同(个数+类型)
    3. 返回值相同
    4. 父子类的情况下

    重写时要注意:

    1. 方法不可以是static
    2. 子类的访问修饰限定,要大于等于父类的访问修饰限定
    3. private方法,不能够被重写
    4. 被final修饰的方法,不能被重写

    对于多态,可以总结它为:
      一、使用父类类型的引用指向子类的对象;
      二、该引用只能调用父类中定义的方法和变量;
      三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
      四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。

    编译和运行:

    编译的时候,不能够确定此时调用谁的方法,运行的时候,才知道调用哪个方法,运行时绑定。

    抽象类:

    1. 包含抽象方法的类
    2. 抽象方法:没有具体实现
    3. 不能够被实例化
    4. 只能被继承
    5. 可以有成员和方法
    6. 一个类继承了抽象类,则需要重写这个抽象类的所有抽象方法
    7. 抽象类B继承另外一个抽象类A,可以不实现它的抽象方法
    8. 同7,如果普通类继承了B,则需要重写他俩所有的抽象方法
    9. 抽象类不能被final修饰

    接口

    1. interface修饰
    2. 接口中的普通方法,不能有具体的实现
    3. 可以有static方法
    4. 抽象方法,默认时public abstract
    5. 接口不能被实例化
    6. 类通过implements实现
    7. 接口中的成员变量,默认是Public static final修饰
    8. 当一个类实现一个接口,重写这个方法,方法前面必须要加上public
    9. 一个类可以通过extends继承一个抽象类或者普通类,但是只能继承一个类。同时,也可以通过implements实现多个接口,用逗号隔开
    10. 接口和接口之间通过extends操作他们的关系,此为拓展。

3.Comparable,Comparator

如果自定义的数据类型,进行大小比较,一定要实现可以比较的接口,Comparable这个接口侵入性强,一般推荐使用比较器。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

协行士辉妖秋落木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值