JAVA基础day08

简介: 本笔记系统梳理Java面向对象高级特性,涵盖接口、抽象类、多态、内部类、包、访问修饰符、final与static关键字及单例、工厂等设计模式,助力深入掌握Java核心编程思想。(238字)

以下是一份关于Java面向对象高级特性的学习笔记:

Java面向对象高级特性学习笔记

1. 接口(Interface)

  • 定义:接口是一种完全抽象的类,用来定义一组规范
  • 特点
    • 使用 interface 关键字定义
    • 接口中的方法默认是 public abstract
    • 接口中的变量默认是 public static final
    • 类通过 implements 关键字实现接口
    • 一个类可以实现多个接口
public interface MyInterface {
   
    // 接口中的变量默认是 public static final
    int VALUE = 10;

    // 接口中的方法默认是 public abstract
    void method();
}

2. 抽象类与抽象方法

  • 抽象类:包含抽象方法的类,用 abstract 关键字修饰
  • 抽象方法:只有方法声明没有方法实现的方法
  • 特点
    • 抽象类不能被实例化
    • 子类必须重写父类的所有抽象方法,否则子类也必须是抽象类
public abstract class AbstractClass {
   
    // 抽象方法
    public abstract void abstractMethod();

    // 普通方法
    public void normalMethod() {
   
        System.out.println("这是一个普通方法");
    }
}

3. 多态(Polymorphism)

  • 定义:同一个引用类型,使用不同的实例可以执行不同的行为
  • 实现条件
    • 继承或实现关系
    • 方法重写
    • 父类引用指向子类对象
// 父类引用指向子类对象
Animal animal = new Dog();
animal.makeSound(); // 调用的是Dog类中重写的makeSound方法

4. 内部类(Inner Class)

  • 成员内部类:作为外部类的成员变量
  • 局部内部类:定义在方法内部
  • 匿名内部类:没有名字的内部类,常用于事件处理
  • 静态内部类:使用static修饰的内部类
public class OuterClass {
   
    // 成员内部类
    class InnerClass {
   
        public void innerMethod() {
   
            System.out.println("内部类方法");
        }
    }

    // 静态内部类
    static class StaticInnerClass {
   
        public void staticInnerMethod() {
   
            System.out.println("静态内部类方法");
        }
    }
}

5. 包(Package)

  • 作用
    • 避免类名冲突
    • 便于组织和管理类
  • 使用
    • 使用 package 声明包
    • 使用 import 导入其他包中的类
package com.itheima.demo; // 声明包

import java.util.*; // 导入Java util包中的所有类

6. 访问修饰符

修饰符 同一个类 同一个包 不同包的子类 不同包的非子类
private
默认(default)
protected
public

7. final关键字

  • 修饰类:该类不能被继承
  • 修饰方法:该方法不能被重写
  • 修饰变量:该变量的值不能被修改(常量)
public final class FinalClass {
   
    public final int VALUE = 100;

    public final void finalMethod() {
   
        // 该方法不能被重写
    }
}

8. static关键字

  • 静态变量:属于类,被所有实例共享
  • 静态方法:属于类,可以通过类名直接调用
  • 静态代码块:类加载时执行,用于初始化静态变量
public class StaticDemo {
   
    static int count = 0; // 静态变量

    static {
   
        // 静态代码块
        count = 10;
    }

    public static void staticMethod() {
   
        // 静态方法
        System.out.println("静态方法");
    }
}

9. 设计模式初步

  • 单例模式:确保一个类只有一个实例,并提供全局访问点
  • 工厂模式:创建对象而不暴露创建逻辑
相关文章
|
运维 监控 Java
研发规范第十三讲:阿里 - 如何进行项目稳定性建设
研发规范第十三讲:阿里 - 如何进行项目稳定性建设
838 1
|
21小时前
|
存储 SQL 运维
数据同步最全避坑指南!4大痛点+4大场景技术方案
在湖仓一体、流批一体趋势下,数据同步成为关键环节。本文直击实时性差、数据孤岛、一致性偏差等痛点,拆解技术方案与常见误区,涵盖Sqoop、Flink、FDL等工具应用,揭示从基础复制到数据服务化的演进路径,助力企业实现高效、稳定、智能的数据流转。
数据同步最全避坑指南!4大痛点+4大场景技术方案
|
15天前
|
SQL 数据库
|
12天前
|
存储 并行计算 调度
迈向可编程观测:在GPU Kernel中构建类eBPF风格的性能探针
本文旨在梳理作者学习路径,带领读者共同探索 GPU Kernel 性能分析从宏观到微观的技术演进。
189 24
迈向可编程观测:在GPU Kernel中构建类eBPF风格的性能探针
|
15天前
|
人工智能 运维 安全
|
6天前
|
安全 IDE 小程序
JAVA基础_day01
本笔记涵盖Java基础学习内容,包括Java简介、环境搭建及基本语法。介绍Java跨平台、面向对象、安全与健壮性等特点,讲解JDK安装配置及开发工具使用,并详解程序结构、数据类型、变量声明等语法知识。附学习建议,助你循序渐进掌握Java编程。
119 74
|
12天前
|
SQL 存储 分布式计算
【万字长文,建议收藏】《高性能ODPS SQL章法》——用古人智慧驾驭大数据战场
本文旨在帮助非专业数据研发但是有高频ODPS使用需求的同学们(如数分、算法、产品等)能够快速上手ODPS查询优化,实现高性能查数看数,避免日常工作中因SQL任务卡壳、失败等情况造成的工作产出delay甚至集群资源稳定性问题。
322 29
【万字长文,建议收藏】《高性能ODPS SQL章法》——用古人智慧驾驭大数据战场
|
20天前
|
人工智能 自然语言处理 前端开发
从零到上线:用 Qwen3-Coder 和 MCP 打造儿童学习助手
本教程介绍如何利用Qwen3-Coder模型与VS Code插件打造儿童学习助手,涵盖AI编程、代码优化与网页部署,助你掌握真实场景开发技巧。
321 29
|
19天前
|
人工智能 缓存 自然语言处理
从 Prompt 到 Context:基于 1400+ 论文的 Context Engineering 系统综述
本文探讨了Prompt Engineering的发展趋势及其扩展——Context Engineering的重要性。随着大语言模型(LLM)的发展,构建合适的上下文(context)成为影响模型性能的关键因素。Context Engineering不仅包括传统的提示词工程,还涵盖了上下文的构建、管理与优化,被视为LLM时代的新软件工程范式。文章结合最新研究成果与行业实践,系统解析了Context Engineering的概念、分类、挑战及其在LLM应用中的核心作用,帮助开发者更好地理解和应用这一新兴技术。
207 26
从 Prompt 到 Context:基于 1400+ 论文的 Context Engineering 系统综述
|
19小时前
|
供应链 监控 JavaScript
如何开发ERP(离散制造-MTO)系统中的库存管理板块(附架构图+流程图+代码参考)
本文详解MTO模式下ERP库存管理的关键作用,涵盖核心模块、业务流程、开发技巧与代码示例,助力制造企业提升库存周转率、降低缺货风险,实现高效精准的库存管控。