面向对象编程

本文深入探讨了面向对象编程的核心概念,包括类与对象的定义,如何在Java中使用它们。强调了封装、继承、多态等特性,并解释了这些特性在实际开发中的应用。此外,还讨论了构造函数、方法重写、访问修饰符的作用以及类型转换。面向对象编程通过抽象、封装、继承和多态提高了代码的复用性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象编程

1、类与对象

是从现实生活中抽象到程序中的某一类实物的统一描述。
对象是某一类实物的具体个体。
日常开发:

  1. 确定需要工作的对象
  2. 分析这个对象在java的类库中有没有对应的类型(class)存在。
    • 如果java类库中有该类型,直接通过该类型new对象使用。
    • 如果java类库中没有该类型,就自己定义这个类型(class),然后通过这个类new对象使用。
      • 使用成员属性(变量)来定义该类的金泰信息
      • 使用成员方法来定义该类将具备的功能。
  3. 通过调用对象的具体功能方法完成某个功能
    • 通过调用对象不具备某个功能方法,那么久换个对象工作,或者给这个类加入需要的功能方法。

类的组成:

  • 成员属性:描述类的静态信息
  • 成员方法:描述类的动态功能行为
  • 构造器(构造方法):用于给类精选初始化、创建对象(new)

类的构造函数是特殊的方法,在对象实例化时自动被调用,通常用于初始化数据。
构造函数的特点:
1.构造函数名和类名同名;
2.构造函数无返回值;
3.可以不带参数或带参数,称为构造函数重载。

  • 代码块
  • 内部类

2、面向对象特性

  • 抽象:将现实生活中的事物、动作等等通过代码在程序中描述。

  • **封装:**就是包装,被包装的元素不能被外部直接发现。

    • 好处:方便实现重复使用。可以讲不想暴露的元素隐藏在封装体的内部。
    • java实现:
      • 用包组织类、用类组织成员(属性、方法等)、用方法组织功能代码
      • 利用修饰符来完成成员变私有化
      • JavaBean:应该包含私有(private)的成员属性及时对应属性的公有(pulbic)的getting、setting方法,必须包含无参构造器。
  • **继承:**从一个已有的租价中获取元素,避免重负构建某些元素。

    • 好处:提升重复利用。建立体系关系。
    • java实现:
      • 通过extend关键字实现类与类之间的集成。被集成的类称为父类、基类,实现继承的类称为子类。
      • 子类可以继承父类的非私有化(private)元素(成员属性、成员方法)。
      • Object是所有java类的根父类。如果没有显示生命继承关系,那么这个类默认继承自Object。
    • java继承关系中的对象创建过程:
      • Cat extends Animal
        在这里插入图片描述

    构造器不能被继承,但是父类构造器可以被子类调用。
    state只能被间接继承。

    • 方法的重写:方法重写发生父子类结构、接口与(当福诶提供的方法不能满足子类具体要求时)。子类中重写的方法要求必须和父类方法名相同,访问修饰符>=父类方法,重写方法的返回值和参数列表需要与父类方法保持一致。
  • **多态:**在面向对象变成中,工作的核心单元对象,可以在不同时期拥有多种形态(编译时形态【编译形态】、运行时形态【真实形态】),以适应更灵活的变成编码。

    • 优点:提升程序的灵活性、可扩展性。
    • 缺点:
    • java实现:
      • 前提条件:类与类之间有关系(父类与子类的集成关系、接口与实现的实现关系)。
      • 对象可以在体系中的多个类型中完成相互转换
        • 类型自动提升(向上转型):子类自动提升为父类(祖父类)类型。
        • 类型强制转换(向下转型):父类类型的对象通过强制转换语法为子类类型(向下转型时需要关注该对象的真实类型,最多向下转换为其真实类型,且不能转换为无关类型)
      • 在多态情况下,如果子类重写了父类方法,且对象的真实类型是子类类型,那么在程序运行期间,调用的方法指向真实类型中的方法。

思考:
1、java中的访问修饰符有哪些?他们的限定范围分别是什么?
2、什么是方法重载(overlord)?什么是方法的重写(override)?有何区别?
3、this和super分别代表什么?
4、byte b1 = 10;b1 += 10;编译是否报错?否
byte b1 = 10;b1 = b1 + 10;编译是否报错?是

以下作用域范围从小到大:
private:私有域,只能在本类内部访问,权限最小
default:默认修饰符,没有明确声明修饰符时采用,被其修饰的类、属性或方法只能被当
前类所属包中的类访问
protected:只能父类和子类可以访问,其他类不行
public:公开域,允许外部访问,权限最大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值