面向对象

面向对象

oop面向对象编程

image-20250915024524554

image-20250915024550576

image-20250915024606727

image-20250915093030478

image-20250915095532265

image-20250915180142207

\

构造器

image-20250915180901268

image-20250915184220196

image-20250915190048189

总结

  • 类与对象
    类是一个模板:抽象,对象是一个具体的实例
  • 方法
    定义、调用!
  • 对应的引用
    • 引用类型:基本类型(8)
    • 对象是通过引用来操作的:栈-->堆
  • 属性:字段Field 成员变量
    • 默认初始化:
    • 数字:0 0.0
    • char: u0000
    • boolean: false
    • 引用:null
  • 修饰符 属性类型 属性名 = 属性值!
  • 对象的创建和使用
    • 必须使用new 关键字创造对象,构造器 person fan = new person();
    • 对象的 属性 fan.name
    • 对象的方法 fan.sleep()
    • 静态的属性 属性
    • 动态的行为 方法

封装、继承、多态

  1. 封装

image-20250915230200477

  • 提高程序的安全性,保护数据
  • 隐藏代码的实现细节
  • 统一接口
  • 系统可维护增加了

2.继承

image-20250916083516603

public class Students  extends Person{
    
}
public class Students {
    Person person;
//public
//protected
//default
//private私有无法继承

ctrl + H打开编辑器

在java中,所有的类都默认直接继承或间接继承object类

调用父类的构造器,必须在子类构造器 的第一行

super

  1. super是调用父类的构造方法,必须在构造方法中的第一个
  2. super必须只能出现在子类的方法或者构造方法中
  3. super和this不能同时调用构造方法

VS this:

代表的对象不同:

  • this:本省调用这个对象
  • super:代表父类对象的应用

前提

  • this:没有继承也可以使用
  • super:只能在继承条件才能使用

构造方法

  • this();本类的构造
  • super();父类的构造!

继承

image-20250919091845170

  1. 重写是方法的重写,和属性无关
静态方法和非静态方法区别很大
  • 静态方法:方法的调用只和左边,定义的数据类型有关
  • 非静态:重写

重写:总结

  1. 需要有继承关系,子类重写父类的方法!

    1. 方法名必须相同
    2. 参数列表必须相同
    3. 修饰符:范围可以扩大:public>Protected>Default>private
    4. 抛出的异常:范围可以被缩小,但不能扩大:ClassNotFoundEcception -->Exception(大)

    重写,子类的方法和父类必要一致:方法体不同

  • 为什么需要重写:
    • 父类的功能,子类不一定需要,或者不一定满足!
    • Alt+Insert : override;

多态

image-20250919101802358

image-20250919105438937

多态注意;

  1. 多态是方法的多态,属性没有多态
  2. 父类和子类,有联系 类型转换异常! ClassCastExsception
  3. 存在条件 : 继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();

那些方法不能被重写

  1. static 方法,属于类,他不属于类;
  2. final 常量;
  3. private 方法;

image-20250919111422183

类型之间的转化:父转子

高转低
Person obj = new student();

((Student)obj).go();

image-20250922095421162

子类转化为父类(向下转型需要强制转换)
可能丢失自己本来的一些方法

方便方法的调用,减少重复的代码!简洁

static
  1. static只执行一次

  2. image-20250922105728902

  3. 匿名代码块

    image-20250922105805861

输出一个随机数

Math.random()

加入import java.lang.Math;在调用random();

或(静态导入包)

import java.lang.Math.random;

posted @ 2025-11-11 14:13  1忧郁女子  阅读(0)  评论(0)    收藏  举报