面向对象学习笔记1

Java面向对象编程基础学习笔记

一、面向对象编程三大主线

第1主线:Java类与类成员

1. 类的基本结构

[修饰符] class 类名 {
    // 1.成员变量(属性)
    数据类型 属性名称; 

    // 2.成员方法(行为)
    [修饰符] 返回类型 方法名(参数列表){...}

    // 3.构造器(初始化对象)
    [修饰符] 类名(参数列表){...}

    // 4.代码块(初始化块)
    static{...}  // 静态代码块
    {...}        // 实例代码块

    // 5.内部类(嵌套类)
    class 内部类名{...} 
}

2. 典型类示例

public class Phone {
    // ▶ 属性定义
    String brand;    // 品牌
    double price;    // 价格

    // ▶ 构造器(对象初始化)
    public Phone() {}  // 无参构造器
    public Phone(String brand, double price) {
        this.brand = brand;
        this.price = price;
    }

    // ▶ 成员方法
    public void call() {
        System.out.println("拨打电话");
    }

    // ▶ 静态代码块
    static {
        System.out.println("加载Phone类...");
    }

    // ▶ 内部类
    class Battery {
        int capacity;
    }
}

第2主线:面向对象核心特征

1. 四大特征体系

特征 核心思想 实现方式
封装 隐藏实现细节,暴露安全接口 private属性 + public方法
继承 代码复用与扩展机制 extends关键字
多态 同一操作作用于不同对象的不同表现 方法重写 + 向上转型
抽象 定义规范而不关注具体实现 抽象类/接口

2. 特征应用示例

// ▶ 封装示例
public class BankAccount {
    private double balance;  // 私有属性

    public void deposit(double amount) {  // 公开方法
        if(amount > 0) balance += amount;
    }
}

// ▶ 继承示例
class SmartPhone extends Phone {
    void facialUnlock() {
        System.out.println("人脸解锁功能");
    }
}

// ▶ 多态示例
public class Test {
    public static void main(String[] args) {
        Phone p = new SmartPhone();  // 向上转型
        p.call();  // 调用子类重写的方法
    }
}

// ▶ 抽象示例
abstract class Shape {
    abstract void draw();  // 抽象方法
}

第3主线:关键字的深度运用

1. 关键功能型关键字

关键字 核心作用 典型场景
this 指向当前对象实例 区分成员变量与局部变量
super 调用父类成员 访问被覆盖的父类方法
static 声明类级别成员 工具类方法/静态常量
final 定义不可变元素 常量/禁止继承/禁止方法重写
interface 定义行为规范 多继承场景下的接口实现
abstract 声明抽象结构 定义模板方法/规范子类行为

2. 组织型关键字

关键字 功能说明
package 声明类所属包(解决命名冲突)
import 导入其他包的类/静态成员

3. 关键字应用示例

// ▶ this使用
public class Student {
    private String name;
    
    public void setName(String name) {
        this.name = name;  // 区分成员变量与形参
    }
}

// ▶ static使用
class MathUtils {
    public static final double PI = 3.1415;
    public static int add(int a, int b) {
        return a + b;
    }
}

// ▶ interface使用
interface USB {
    void transferData();
}

class Mouse implements USB {
    @Override
    public void transferData() {
        System.out.println("传输鼠标坐标数据");
    }
}

一、面向对象编程概述

面向对象编程(OOP)是一种以对象为核心的编程范式,其他常见范式包括:

  • 面向过程编程(以过程为核心)
  • 指令式编程(强调执行顺序)
  • 函数式编程(以函数为基本单元)

二、类与对象的核心概念

1. 基本定义

  • :具有相同特征事物的抽象描述(模板)
  • 对象:类的具体实例,实际存在的个体(实例)

2. 关系说明

  • 类 = 抽象概念(如"手机")
  • 对象 = 具体实体(如"华为Mate60手机")

三、类的成员组成

成员类型 对应名称 说明
属性 成员变量 描述类的状态特征
行为 成员方法 描述类的功能操作
初始化 构造器 创建对象时初始化
其他 代码块/内部类 辅助类的功能实现

四、类定义示例(Phone类)

public class Phone {
    // 属性(成员变量)
    String name;   // 品牌
    double price;  // 价格

    // 方法(成员方法)
    public void call() {
        System.out.println("手机可以打电话");
    }
    
    public void sendMessage(String message) {
        System.out.println("发送信息:" + message);
    }
    
    public void playGames() {
        System.out.println("手机可以玩游戏");
    }
}

五、对象实例化与使用

1. 测试类示例

public class PhoneTest {
    public static void main(String[] args) {
        // 1. 创建对象
        Phone p1 = new Phone();
        
        // 2. 设置属性值
        p1.name = "Huawei Mate60";
        p1.price = 6999;
        
        // 3. 访问属性
        System.out.println("名称: " + p1.name + ", 价格: " + p1.price);
        
        // 4. 调用方法
        p1.call();
        p1.sendMessage("新品上市,欢迎选购!");
        p1.playGames();
    }
}

2. 运行结果

名称: Huawei Mate60, 价格: 6999.0
手机可以打电话
发送信息:新品上市,欢迎选购!
手机可以玩游戏

六、面向对象开发三步骤

  1. 类设计:定义类及其成员(属性/方法)
  2. 对象创建:通过new关键字实例化对象
  3. 功能调用:使用对象.成员形式进行操作

七、核心概念说明

1. 实例化格式

// 类名 对象名 = new 类名();
Phone phone = new Phone();

2. 面向对象三大特征

  1. 封装:隐藏实现细节,暴露安全接口
  2. 继承:代码复用和扩展机制
  3. 多态:同一操作作用于不同对象的不同表现

3. 重要关键字

  • 访问控制:public/protected/private
  • 类关系:extends/implements
  • 对象引用:this/super
  • 特殊修饰:static/final/abstract
  • 模块管理:package/import

八、开发建议

  1. 类的命名使用大驼峰式(如PhoneTest
  2. 方法名使用小驼峰式(如sendMessage
  3. 保持类的单一职责原则
  4. 优先使用组合而非继承
  5. 注意区分中英文符号(特别是分号和括号)

通过实践这些基础概念,可以逐步掌握Java面向对象编程的核心思想。后续学习中可以重点关注三大特征的实现原理,以及设计模式等高级主题的应用。

posted @ 2025-02-28 22:15  谁来着?  阅读(27)  评论(0)    收藏  举报