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

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

相关推荐
JAVA面经实录91715 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
许彰午17 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
Bat U18 小时前
JavaEE|多线程初阶(七)
java·开发语言
掌心向暖RPA自动化20 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
日取其半万世不竭20 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
TeamDev21 小时前
JxBrowser 9.0.0 版本发布啦!
java·前端·混合应用·jxbrowser·浏览器控件·跨平台渲染·原声输入
AI人工智能+电脑小能手21 小时前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试
AI人工智能+电脑小能手1 天前
【大白话说Java面试题】【Java基础篇】第25题:JDK1.8的新特性有哪些
java·开发语言·后端·面试
likerhood1 天前
SLF4J: Failed to load class “StaticLoggerBinder“ 解决
java·log4j·maven
早日退休!!!1 天前
大模型推理瓶颈七层分析模型
java·服务器·数据库