Java(三) 面向对象

方法

  1. 如果方法的修饰符是static方法可以被别的类直接调用
  2. 非静态方法(没有static)需要new一个类
  3. 值传递和引用传递(相当于是c语言中的指针)
  4. 一个项目应该只存在一个main方法

构造器

  1. 一个类就算什么都不写也会存在一个方法
  2. 构造器(构造方法)名字必须和类名相同,且不能有返回值
  3. 使用new关键字,本质是在调用一个构造器
  4. 如果定义了有参构造,必须显式定义无参构造
  5. 构造器一般用来赋初值
  6. alt+insert快捷键可以生成构造器

封装:属性私有,getset

  1. 使用private关键字的属性不可更改值
  2. 提供一些getset方法,可以认为是权限的大小不同
  3. alt+insert 里面有 getter和setter

继承:extends

  1. 继承是一种扩展
  2. 在java中所有的类都默认继承Object类
  3. java只有单继承
  4. super调用的父类,this是当前的
  5. 子类的构造器里面会隐式调用父类的构造器(super)
  6. 子类的构造器如果显示调用父类构造器一定要写在第一行(super)

重写

  1. 修饰符:范围可以扩大不可缩小 public>protected>default>private
  2. 抛出异常可以被缩小不可扩大
  3. 子类重写父类的方法
  4. 方法名字相同,参数列表相同
  5. 为何重写:父类的功能太多或太少

多态

  1. 一个对象的实际类型是确定的,但是可以指向的引用类型不确定
  2. 对象能用哪些方法和左边有关,和右边关系不大
  3. 属性不存在多态
  4. 条件是存在继承关系,方法需要重写,父类的引用指向子类对象
  5. 同一个方法根据发送对象的不同而采取多种不同的行为方式
  6. instanceof
  7. 类型转化,子类转化为父类可能丢失一些方法。
  8. 子类转化为父类(向上转型)
  9. 父类转化为子类(向下转型)需要强制转换,可能丢失一些方法
    在这里插入图片描述

static关键字

  1. 静态变量可以直接用类名调用而不创建对象
  2. 非静态方法可以直接访问静态方法,静态方法可以调用静态方法
  3. 静态代码块在构造器之前执行,只执行一次
  4. 静态导入包可以直接调用

抽象类

  1. 用abstract来修饰类
  2. 抽象方法只有方法名字,没有方法实现
  3. 抽象类的所有方法,继承其的子类必须实现(除非该子类也是抽象方法)
  4. 抽象类不能new出来
  5. 抽象类里面必须写普通方法,抽象方法必须包含在抽象类里面

接口:本质是契约

  1. interface
  2. 接口中所有的定义都是public abstract
  3. 类可以实现接口,使用implement关键字,实现接口的类,必须重写接口中的方法
  4. 接口实现伪多继承
  5. 接口里面的常量都是 public static final
  6. 接口不可实例化

内部类

  1. 内部类可以获取外部类的静态属性
  2. 1个java类文件中只能有一个public 类,但是可以有多个类
  3. 方法里面也可以写类(局部内部类)
  4. 内部类可以没有名字(匿名内部类)

异常

技巧

i.sout

猜你喜欢

转载自blog.csdn.net/KafenWong/article/details/121452712