Java-面向对象知识汇总(第一节)

本文介绍了面向对象编程的核心概念,包括面向对象与面向过程的区别、构造方法、类和对象的使用、实例化、常见异常以及静态属性的调用。重点讲解了如何在Java中创建和操作对象,以及注意事项如静态调用和传值方式。
摘要由CSDN通过智能技术生成

1.面向对象

1.1概述

1.2面向对象和面向过程

面向过程 : 侧重分步骤,需要考虑完成该功能的过程,第一步做什么,第二步做什么....

面向对象 : 侧重分模块

总结 : 

面向有对象优势 : 可扩展性,可维护性,灵活性,使程序耦合度降低

缺点 : 性能比面向过程相对较差

1.3构造方法

1.4类和对象

1.5 对象使用

1.6 Bean

就是公共的类,私有化的属性,公共的获取属性的方法(getter/setter),公共的无参构造

public class User {
    // 用户名
    private String username;
    // 密码
    private String password;
    // 昵称
    private String nickname;

    // 构造方法
    public User() {
    }

    public User(String username, String password) {
    // 有参构造 用于创建对象时 初始化成员变量的值
    this.username = username;
    this.password = password;
    }

    public User(String username, String password, String nickname) {
    // 全参构造
    this.username = username;
    this.password = password;
    this.nickname = nickname;
    }

    // getters and setters 用来获取和修改私有化成员变量的
    public void setUsername(String username) {
    // 成员方法中可以直接访问成员属性
    // this 就是 当前对象,谁调用这个方法,this就是谁
    if (username == "123") {
    username = "缺心眼子";
    }
    this.username = username;
    }

    public String getUsername() {
    return username;
    }

    public String getPassword() {
    return password;
    }

    public void setPassword(String password) {
    this.password = password;
    }

    public String getNickname() {
    return nickname;
    }

    public void setNickname(String nickname) {
    this.nickname = nickname;
    }

}

1.7实例化

 * 实例化 : 就是值创建一个类的对象(实例)

 * 

 * User user = new User();

 * 

 * new 会去堆内存开辟一个内存空间,用于保存成员属性

 * 

 * 调用构造方法(栈内存压栈),对堆内存数据进行初始化赋值,如果没有传入数据,则赋予默认值

 * 

 * 构造方法执行完后,弹栈,并把堆内存地址返回给调用处,赋值给变量user

 * 1 加载客户端类(OOP_05)

 * 

 * 2 调用客户端类main方法

 * 

 * 3 加载服务端类(User)

 * 

 * 4 调用User的构造方法

 * 

 * 5 堆内存创建空间,并对成员属性进行初始化

 * 

 * 6 构造方法弹栈,并把内存地址赋值给变量

1.8常见异常

    User user = new User("admin", "root");
    user = null;
    // 一种是编译时异常
    // 一种是运行时异常
    // java.lang.NullPointerException 空指针异常, 是运行时异常
    // 使用null 访问成员属性,就会出现空指针异常
    System.out.println(user.getUsername());

1.9对象调用静态属性

    static int a = 22;
    int b = 33;

    public static void main(String[] args) {
    int a = 1;
    OOP_07 o = new OOP_07();
    System.out.println(o.b);
    o = null;
    // 可以通过对象调用静态属性
    // 调用静态变量,因为在编译时,会自动把o换成对应的类名去调用
    System.out.println(o.a);
    // 调用静态变量
    System.out.println(OOP_07.a);
    // 调用局部变量
    System.out.println(a);
    }

1.10 注释事项

        1.10.1静态调用成员

        1.10.2 传值和传引用

同数组

        1.10.3  区分成员方法和构造方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值