2021-07-08

面向对象中的封装、继承

面向对象
1.1 对象
万物皆对象
静态:身高,体重…说明是什么(属性)
动态:吃饭,走路…说明能做什么(行为)
1.2 类
具有相同属性(表示静态的,说明是什么)和行为(方法/动态的,说明能做什么)的一类
事物。
1.3 对象与类的关系
类是对象的模板(抽象),对象是类的实例。
1.4 类的定义
关键字:class
访问控制修饰符 class className{
// 属性
// 方法
}
1.5 对象实例化
// 类名 对象名 = new 类名();
Person lisi = new Person();// 实例化对象
对象名(lisi).属性名
对象名(lisi).方法名()
1.6 成员变量与局部变量
成员变量(全局变量):在类内、方法外声明的变量。(作用域:该类中的所有地方都可以
使用)
局部变量:在方法内部声明的变量(作用域:只在该方法内部调用)
1.7 方法
1.7.1 格式
访问控制修饰符 返回值类型 方法名 (){
// 代码块
}
Copyright© ZLZ
2
Everything is possible
1.7.2 分类:4
有参,有返回值
public int eat(int money) {
return money;
}1、 返回值类型可以是任意类型,包括自定义类型都可以
2、 如果定义方法时有返回值,在方法体内一定有 return 语句
3、 Return 后的数据类型与返回值类型保持一致
4、 返回值:返回到方法的调用处
有参,无返回值
public void eat(int money) {
System.out.println(“我吃饭花费:”+money);
}
无参,有返回值
public int eat() {
int money = 12;
String food = “三秦套餐”;
// System.out.println(“我吃”+food+",花费"+money+“元”);
return money;
}
注意:一般来说,有返回值的方法,在方法体内不写输出语句;在调用处输出。
面试题:break,continue 与 return 的区别。
无参,无返回值
public void eat() {
int money = 12;
String food = “三秦套餐”;
System.out.println(“我吃”+food+",花费"+money+“元”);
}
1.8 面向对象
用人的世界观改变计算机的世界观(人是怎么想的,就让计算机按照人的想法去实现)
1.9 面向对象的特征
1.9.1 封装:
概念
隐藏属性、方法或方法实现细节的过程。
最终效果:私有属性,公有方法
访问控制修饰符及其应用范围
private 默认 protected public
本类 √ √ √ √
同包 √ √ √
Copyright© ZLZ
3
Everything is possible
子类 √ √
所有 √
构造方法(构造器)
方法名与类名相同的方法。
/**特点:

  • 1、没有返回值,连 void 都没有。
  • 2、方法名与类名相同
  • 作用:初始化成员变量。
    /
    /
    *
  • 构造方法如果不写,系统默认存在一个隐性无参的。
  • 如果写了,那么就会覆盖原本系统提供的那个隐性无参的构造器。
  • SUN 公司建议:每个类中至少包含两个构造方法,一个是无参的,一个是包含所有参数

    /
    this 关键字
    自己的,本类的。
    1、 属性
    2、 方法
    3、 构造器(必须放在第一行)
    方法重载(overload)
    在同一个类(封装)中,方法名相同,参数列表(参数的类型,个数,顺序)不同的方
    法。
    1.9.2 继承:
    1.9.2.1 概念
    在一个类的基础上创建一个新类的过程。原本的类叫父类(超类),新产生的类叫子类
    (派生类)。
    关键字:extends
    单继承(is-a)
    1.9.2.2 特点
    ***** 1、 子类继承父类非私有的属性和方法
    2、 子类可以扩展自己的属性和方法
    3、 子类不能继承父类的构造方法,只能调用
    4、 子类可以重写父类的方法(方法重写) 5、 可以声明父类、创建子类
    a) 声明什么类型,就能调用该类型的属性和方法。
    b) (重写)创建什么类型,就能调用该类型的属性和方法。
    c) 创建什么类型,就能强转为什么类型。
    方法重写:(override) 在继承中,方法签名(方法名+参数列表[参数类型、个数、顺序])相同、实现不同。
    注意:子类的访问控制修饰符,不能严于父类
    Copyright© ZLZ
    4
    Everything is possible
    1.9.2.3 super 关键字
    父类的,超类的 1、 属性
    2、 方法
    3、 构造器
    1.9.2.4 应用
    1.9.2.5 继承的写法:2 1、 先写子类,抽取共性,作为父类,子类继承父类。(入门) 2、 先写父类,在写子类(适合思路清晰)
    1.9.2.6 优点
    代码重用性高
    常见面试题: 1、 继承的特点
    2、 继承与访问控制修饰符有没有关系? 3、 请谈谈你对 super 关键字的理解
    4、 方法重载与方法重写的区别
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值