十分钟梳理一遍面向对象

面向对象:

面向对象的思想:面对问题的时候,先思考问题中有哪些对象,对象之间有着哪些关系,哪些类去实现哪些方法。

类是同一事物的概念(你脑海中对事物的称呼),对象是事物实际的存在(你感官中的事物具体状态)。

类的创建:

            public class 类名{
                构造代码块
                静态代码块
                成员变量
                构造方法
                成员方法
            }

对象的创建和使用:
对象的创建: 通过类中的构造方法来创建。
对象的使用:
访问成员变量: 对象名.成员变量名
访问成员方法: 对象名.成员方法名(实参);
无返回值的方法: 对象名.成员方法名(实参);
有返回值的方法:
直接调用: 对象名.成员方法名(实参);
赋值调用: 数据类型 变量名 = 对象名.成员方法名(实参);
输出调用: System.out.println(对象名.成员方法名(实参));

封装:
使用private修饰成员变量或者成员方法,被修饰后无法在外部被调用,成员变量通过提供set\get方法来进行使用。

继承:
继承的格式:
public class Zi extends Fu{}
继承后成员的访问特点:
子类继承父类后,就拥有了父类的成员变量和成员方法

抽象类:abstract关键字
父类中的某个方法,在他不同的子类中有着不同的方法体,那么该方法就应该定义为抽象方法。
抽象类中可以不定义抽象方法,但是抽象方法所在的类,一定是抽象类
父类是抽象类,子类在继承父类的时候,需要重写父类中所有的抽象方法。

接口
定义接口使用interface关键字, 是方法的一个"集合",编译之后会产生class文件。
接口不能创建对象, 需要实现接口(implements), 实现接口的类叫做实现类(接口的子类)
- 实现类: 普通类 必须重写接口中的抽象方法
- 实现类 ;抽象类 可以不用重写接口中的抽象方法

  格式:public interface 接口名称 {
  	    // 常量(jdk7)
  	    // 抽象方法(jdk7)
  	    // 默认方法(jdk8)
  	   // 静态方法(jdk8)
  	   // 私有方法(jdk9)
  	}

多态:
1.形成多态: 类的继承\接口的实现
父类的引用指向子类的对象 \ 接口的引用指向实现类的对象方法的重写

2.多态后的成员访问特点:
除了非静态方法是编译看父类,运行看子类,其余都是看父类

3.多态的好处: 形参多态,返回值多态,变量多态
父类的引用可以接收该父类对象或者其所有子类对象
接口的引用可以接收该接口的所有实现类对象

4.多态的弊端解决:
向下转型
instanceof关键字

super:
访问父类的成员变量: super.父类成员变量名
访问父类的成员方法: super.父类成员方法名(实参);
访问父类的构造方法: super();super(实参);

this:
访问本类的成员变量: this.本类成员变量名
访问本类的成员方法: this.本类成员方法名(实参);
访问本类的构造方法: this();this(实参);

final: 表示不可变
修饰类:被修饰的类不能被继承
修饰方法:被修饰的方法不能被重写
修饰变量:被修饰的变量只能赋值一次(常量)

static:静态
修饰成员变量:
格式: static 数据类型 变量名
特点: 可以被该类的所有对象共享一份数据
使用: 类名.变量名
修饰成员方法:
格式: 修饰符 static 返回值类型 方法名(形参列表){}
使用: 类名.方法名(实参);
特点:在静态方法中,只能调用静态方法和静态的成员变量。

代码块:
构造代码块
格式: {}
位置: 类中,方法外
执行: 每次调用构造方法之前都会执行一次
静态代码块
格式: static{}
位置: 类中,方法外
执行: 随着类的加载而执行,并且只执行一次
局部代码块
格式: {}
位置: 方法中
执行: 按照方法的执行顺序,执行到局部代码块的时候就执行

匿名内部类:
本质:是一个类的匿名子类的对象\是一个接口的匿名实现类的对象
格式:
new 类名\接口名(){
重写抽象方法
};
用途:可以直接当参数使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值