面向对象

一、什么是面向对象?

  1. 对象:把相关的数据和方法组织为一个整体来看待
  2. 面向对象:利用对象进行软件开发
  3. Javabean 用来描述一类事物的属性和行为
public class 类名 {
    私有化成员变量
    无参构造
    带全部参数的构造
    get/set方法
    ...
}

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

二、类和对象

  1. 定义一个类描述一类事物
  2. 创建对象,记录单独个体的所有信息
  3. 描述一类事物的类叫 JavaBean 类
  4. 带有 main 方法的类叫测试类

三、面向对象中的数据安全问题

(一)private

  1. 是一个权限修饰符,可以修饰成员变量和成员方法
  2. 特点:一旦被 private 修饰,只能在本类中才能访问,外界无法访问
  3. 提供 set...(参数),给成员变量赋值,用 public 修饰
  4. 提供 get... (参数),获取成员变量的值,用 public 修饰

(二)this

  1. 就近原则

在方法中直接使用变量查找顺序:先找局部变量,再找成员变量

  1. this 的作用?

可以区别成员变量和局部变量

四、构造方法

(一)特点

  1. 方法名与类名相同,大小也要一致
  2. 没有返回值类型,连 void 都没有
  3. 没有具体的返回值(不能由 return 带回结果数据)

(二)执行时机

  1. 创建对象的时候由虚拟机调用,不能手动调用构造方法
  2. 每创建一次对象,就会调用一次构造方法

(三)注意事项

  1. 如果没有定义构造方法,系统会给出一个默认的无参数构造方法
  2. 如果自己写了任意构造方法,系统将不再提供默认的构造方法
  3. 带参构造方法和无参构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
  4. 习惯:无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法

五、static关键字
(一)static修饰成员变量

  1. static:表示静态,是Java的修饰符,用来修饰成员变量和成员方法
  2. 静态变量:呗这个类所有对象共享,属于类,随着类的加载而加载,优先于对象而存在

(二)static修饰成员方法

  1. 静态方法只能访问静态变量和其他的静态方法
  2. 非静态方法可以访问静态变量或者静态方法,也可以访问非静态变量和非静态方法
  3. 静态方法中是没有this关键字
  4. 静态只能访问静态,非静态可以调用所有,静态方法无this

六、final关键字

  1. 只能被赋值一次,一旦赋值,无法再次修改
  2. 常量名大写,多个单词之间用下划线隔开

七、枚举

  1. 枚举:一个特殊的Javabean类,这个类是有限个
  2. 定义格式:
public enum 枚举类名{
    枚举项1, 枚举项2, 枚举项3;
    属性
    行为
}
  1. 每一个枚举项,都是该枚举类的对象
  2. 枚举项在底层其实就是常量,默认用public static final修饰
  3. 枚举项的第一行上必须是枚举项,枚举项之间用逗号隔开,以分号作为结尾
  4. 枚举项的构造方法必须是private修饰,不让外界创建本类的对象
  5. 编译器会给枚举类新增两个默认存在的方法:values(),valueof()

八、继承

(一)什么是继承?继承的好处?

  1. 继承是类与类之间的一种父子关系
  2. 减少冗余代码,提高代码复用性
  3. 继承的格式:
Public class 子类 extend 父类{}
  1. 子类可以在父类的基础上新增其他功能,子类更强大

(二)继承的特点

  1. Java只能单继承,不支持多继承,但是支持多层继承
  2. 直接继承的父类叫做直接父类,简介继承的父类叫做间接父类
  3. Java中所有的类都直接或间接继承于Object类

九、多态

  1. 多态是事物的多种形态
  2. 多态的表现形式:
Fu f = new Zi();
  1. 多态的前提是有继承/实现关系,有父类引用指向子类对象,有方法的重写

十、抽象类和抽象方法

  1. 什么是抽象类和抽象方法?
    (1)多个子类抽取共性时,无法确定方法体,就把父类中的方法定义为抽象,强制让子类按照某种格式重写。
    (2)抽象方法所在的类,必须是抽象类。

  2. 抽象类和抽象方法的格式?
    public abstract 返回值类型 方法名(参数列表);
    public abstrzct class 类名{...}

  3. 继承抽象类有哪些要注意?
    (1)抽象类不能实例化
    (2)继承抽象类,要么重写抽象类中所有的抽象方法
    (3)要么子类也是一个抽象类

十一、接口

  1. 接口:接口就是一个规则,而且时独立于继承体系以外的规则。
  2. 格式:关键字interface来定义
    public interface 接口名
  3. 使用:接口和类之间是实现关系,通过implements关键字来表示
    public class 类名 implements 接口{...}
  4. 注意点:
    (1)接口不能实例化
    (2)接口的子类(实现类),要么重写接口中所有的抽象方法,要么实现类是一个抽象类
    (3)一个类可以实现多个接口,也可以在继承一个类的同时,实现多个接口
    public class 类名 implements 接口1, 接口2{...}
    public class 类名 extend 父类 implements 接口1, 接口2{...}

十二、内部类

  1. 内部类:写在一个类里面的类
  2. 一个类表示的实物是另一个类的一部分,切单独存在没有意义是用到内部类
  3. 匿名内部类:隐藏了名字的内部类,可以写在成员位置,也可以写在局部位置
    (1)作用:在继承一个类或实现一个接口的时候少写一个文件
    (2)定义格式:
       new 类名或者接口名(){
           重写方法;
       };

(3)匿名内部类等价于没有名字的java类 + 实现接口/继承类 + 重写方法 + 创建对象
(4)使用场景:如果实现类只要使用一次,就可以实现匿名内部类简化代码

posted @ 2026-03-28 18:58  zhaoyonghui  阅读(10)  评论(0)    收藏  举报