Bug猫学习史#1:面向对象

在Java编程中,掌握几个核心概念对深入学习至关重要:类属性建议采用包装类以提升灵活性;建造者模式中this关键字能有效简化对象构建过程;static关键字涉及类的加载机制;接口默认使用public修饰符并支持默认方法实现;多态特性结合instanceof操作符可实现类型安全检查;此外,不同代码块的执行顺序直接影响程序初始化流程。这些基础知识点构成了Java面向对象编程的重要支柱。


1.类的属性

在创建类时,属性和方法返回值类型 建议使用包装类(Boolean、Character、Integer等),引用属性默认为null;

基础类型有默认值,不允许为null值,如果确定不会有null情况,基础类型无对象创建故性能更好,但如果不是高频环境,那点性能忽略不计,更应该让代码有灵活性。

2.this使用

目前常用于建筑者模式中

java 复制代码
public class Person {

    private String name;
    private String password;
    private Integer age;
    private Integer sex;

    private Person(Builder builder) {
        this.name = builder.name;
        this.password = builder.password;
        this.age = builder.age;
        this.sex = builder.sex;
    }

    public static Builder builder() {
        return new Builder();
    }

    public static class Builder {
        private String name;
        private String password;
        private Integer age;
        private Integer sex;


        public Builder name(String name) {
            this.name = name;
            return this;
        }

        public Builder password(String password) {
            this.password = password;
            return this;
        }

        public Builder age(Integer age) {
            this.age = age;
            return this;
        }

        public Builder sex(Integer sex) {
            this.sex = sex;
            return this;
        }

        public Person build() {
            return new Person(this);
        }
    }
    
}

3.static关键字

在类里面的静态成员在类加载时初始化;好比在房间开门时,将咖啡机也搬进房间,但是静态方法初始化不等于自动运行,还需调用触发手动去接咖啡;注意如果是静态初始化快会在首次类加载时自动运行代码

4.可变参数

5.接口

下面展示接口的默认修饰符,如果将来添加功能时,该功能几行代码就搞定了,就没必要再定义抽象方法再重写,可以直接定义默认方法或静态方法。

6.多态

多态是高扩展性的体现;在父类 = new 子类中,成员变量优先从父类获取,成员方法优先从子类获取。

使用instanceof关键字可以判断对象是否属于某个类

7.权限修饰符

8.代码块

执行优先级:静态代码块(只一次)> 构造代码块 > 构造器

相关推荐
FLGB1 天前
maven漏洞检测报告
java·maven
农夫山泉2号1 天前
【c++】——c++编译的so中函数有额外的字符
java·服务器·c++
wangan0941 天前
不带圆圈的二叉树
java·前端·javascript
小马哥编程1 天前
【软考架构】滑动窗口限流算法的原理是什么?
java·开发语言·架构
饕餮争锋1 天前
Spring AOP原理简析
java·spring
okseekw1 天前
Maven从入门到实战:核心概念+配置详解+避坑指南
java·后端
tryxr1 天前
ReentrantLock 与 synchronized 的区别
java··reentrantlock
Java爱好狂.1 天前
Java面试Redis核心知识点整理!
java·数据库·redis·分布式锁·java面试·后端开发·java八股文
sheji34161 天前
【开题答辩全过程】以 基于Java的应急安全学习平台的设计与实现为例,包含答辩的问题和答案
java·开发语言·学习