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.代码块

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

相关推荐
浓墨染彩霞2 分钟前
Java----set
java·经验分享·笔记
5pace2 分钟前
【JavaWeb|第一篇】Maven篇
java·maven
Code_Geo1 小时前
agent设计模式:第三章节—并行化
java·设计模式·agent·并行化
Javatutouhouduan1 小时前
2025Java高质量面试真题汇总!
java·高并发·java面试·java面试题·后端开发·java架构师·java八股文
维诺菌2 小时前
k8s java应用pod内存占用过高问题排查
java·jvm·云原生·容器·性能优化·kubernetes
5pace2 小时前
【JavaWeb|第二篇】SpringBoot篇
java·spring boot·后端
oak隔壁找我2 小时前
Spring AOP源码深度解析
java·后端
oak隔壁找我2 小时前
MyBatis Plus 源码深度解析
java·后端
oak隔壁找我2 小时前
Druid 数据库连接池源码详细解析
java·数据库·后端