2021-02-09

面向对象基础

类与对象

定义类

public class  类名{
    //定义属性,属性名符合驼峰命名法
    public 数据类型 属性名;
    //定义方法,方法名符合驼峰命名法
    public 返回值类型 方法名(参数列表){
        //方法体
    }
}

构造函数

public 构造函数名(参数列表){
}

包括有参构造无参构造

java是通过类的构造函数,也叫构造方法来创建对象的。

  1. 方法名必须与类名一致。
  2. 不需要定义返回值类型。
  3. 构造方法也是可以被重载的。

创建对象

类名 对象名 = new 类名();

使用对象

访问属性:对象名.属性名

调用方法:对象名.方法名(参数列表)

this关键字

指代当前类的实例化对象。

调用构造方法:this(参数列表)

调用普通方法:this.方法名()

方法重载

  1. 同一个类中。
  2. 方法名相同。
  3. 参数列表不同(个数或类型不同)。
  4. 与返回值和访问权限修饰符无关。

成员变量和局部变量

public class Text{
    
    String name = "张三";//定义在方法外,成员变量。
    
    public void show(){
        int num = 10;//定义在方法中,局部变量。
    }
    
}

封装

封装的步骤

  1. 修改属性的访问权限,使得外部不能够直接访问。
  2. 提供外部可以直接调用的方法。
  3. 在方法中加入属性控制逻辑。

static关键字

static表示静态或全局

静态变量静态方法

继承

继承的基本语句如下:

父类:

public class 类名{
    //属性和方法
}

子类:

public class 类名 extends 父类名{
 	//子类特有的属性和方法   
}

子类访问父类

实现了继承关系的父子类,在创建子类对象时,无论是调用无参构造还是有参构造,都会默认先创建父类对象,并且通过父类的无参构造完成实例化的。

调用父类无参构造:super()

调用父类有参构造:super(1)

子类访问权限

同一个类同一个包不同包子类
public可以访问可以访问可以访问可以访问
protected可以访问可以访问不可以访问可以访问
默认修饰符可以访问可以访问不可以访问不可以访问
private可以访问不可以访问不可以访问不可以访问

包的命名规范

  1. 由小写字母组成,可以包含数字,但不能以数字开头。
  2. 使用 ” . “ 来分层,不能将 ” . “ 用作开头或结尾。
  3. 一般采用网络域名的反向输出。

方法重写

子类在继承父类方法的基础上,对父类方法重新定义并覆盖的操作叫做方法重写。

  1. 父子类的方法名相同。
  2. 父子类的方法参数列表相同。
  3. 子类方法返回值与父类方法返回值类型相同或者是其子类。
  4. 子类方法的访问权限不能小于父类。

方法重写 VS 方法重载

所在位置方法名参数列表返回值访问权限
方法重写子类相同相同相同或者是其子类不能小于父类
方法重载同一个类相同不同没有要求没有要求

public > protected > 默认修饰符 > private

多态

定义一个方法,在具体的生产环境中根据不同的需求呈现出不同的业务逻辑。

多态的使用

  1. 定义方法时形参为父类,调用方法时传入的参数为子类对象。
  2. 定义方法时返回值的数据类型为父类,调用方法时返回子类对象。

子类转父类:父类引用指向子类对象,可以自动完成,也叫向上转型。

父类转子类:子类引用指向父类对象,需要强制转换。

抽象方法和抽象类

只声明不需要定义方法体。

声明抽象方法时需要加上abstract关键字。

  1. 一旦类中定义了抽象方法,则该类也必须声明为抽象类。
  2. 抽象类不能被实例化。
  3. 抽象方法没有方法体。
  4. 抽象类可以定义普通方法,可以没有抽象方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值