Java SE基础知识点总结(四)

来源:互联网 发布:淘宝所有订单不全 编辑:程序博客网 时间:2024/06/01 10:38
  • 构造方法一般用于初始化对象,为正在创建的成员变量赋初值。
  • 创建对象时一定会调用一个构造方法,如果没有写构造方法则编译器会为类加上一个默认的构造方法。
  • 构造方法中的this:访问对象属性、访问实例方法、调用重载的其他的构造方法(只能位于第一行,不会触发新对象的创建)
  • StringBuffer与StringBuider的区别:前者是线程安全的,后者性能较高。
  • ==比较的是地址(两个不同对象相同赋值也不等),equals比较的对象的值。

Integer i=100;//自动装箱 int i = new Integer(100);//自动拆箱 需要注意的:boolean类型的值,所有byte类型的值,short、int->(-128,127),在 \u0000-\u007F之间的char类型的值。 为什么要用封装类型? 类的封装性,保持本对象的数据的隐藏,防止其被其他对象破坏。 某些情况,数据必须作为对象出现,必须要用封装类。 某些情况,封装后可以更加方便的操作数据,比如:Integer的shortValue(),longValue(),intValue()等。

static:

  • 不可用于修饰构造方法
  • 静态变量和静态方法被类的的每一个对象公用
  • 静态变量和静态方法是在程序运行时分配内存的,直到程序运行结束才会销毁 静态方法中不能出现”this”和”super”
  • 程序运行时,先执行静态代码块,在类加载的时候执行并只执行一次 静态代码块在类中的顺序就是执行顺序(向下覆盖)

继承:

  • 面向对象编程的特征之一
  • 父类的构造函数不会被继承
  • 在子类里新建父类的对象,此时该对象只能调用父类的public变量和方法
    创造子类对象时,会先按照其父类的信息开辟空间,然后如果有新增的属性或者方法,再继续分配
  • 使用super关键字显示调用父类的构造方法(必须写在第一行),不能和this同时出现
  • 子类重写父类的方法会形成覆盖,覆盖的方法的访问权限不能比父类更严格(级别小),覆盖的行为不能比父类抛出更多异常

抽象类:

  • 使用abstract声明的类,类中包括一个或多个抽象方法就必须指定为抽象类,抽象方法属于不完整的方法,只有声明,没有方法主体(由继承该类的子类重写来实现)
  • 抽象类不能直接被实例化
  • 抽象类可以继承抽象类也可以继承普通类,抽象类可以实现接口
  • 继承了抽象类的普通类必须写出抽象类内部所有的抽象方法
  • 继承了抽象类的抽象类就不用写出所有抽象方法,继承类也是抽象类,因此也不能被实例化
  • 抽象类可以创建引用类型变量,用于指向其子类的对象

为什么要使用抽象类?

1.如果一个类中没有包含足够的信息来描绘一个具体的对象
2.进行类型隐藏,表现为一组行为的抽象描述,这一组任意个可能的具体实现方式则表现为所有可能的派生类
3.作为一系列函数的容器存在

接口:

  • 接口是一个特殊的抽象类 做到尽量简单,达到松耦合效果
  • 普通类和抽象类都可以实现接口,一个类可以继承的同时实现多个接口,一个接口可以被多个类实现,接口还可以创建引用类型变量
  • 抽象类是提取子类的公共代码,接口是类遵循接口协议对类进行的扩展**
0 0
原创粉丝点击